我确信这是小事,但我无法弄清楚。 Node,nodemon和gulp使用app.js来启动我的服务器所以我不确定为什么一种方式可以工作而gulp不能。如果我使用以下方式启动服务器:
nodemon app.js或 节点app.js它启动正常,当我在浏览器中使用路径localhost:1337时,它会执行它应该执行的操作。
当我使用命令时:
吞
它说它启动了服务器,但当我导航到localhost:1337时,除了“Can not GET /”之外没有显示任何内容,并且检查器中没有显示任何来源。我的app.js console.log中仍然显示“端口正在侦听”的消息。我的gulpfile如下:
var gulp = require('gulp');
var nodemon = require('gulp-nodemon');
gulp.task('nodemon', function(){
nodemon({
script: './app/app.js'
})
});
gulp.task('watch', function(){
gulp.watch('*.js', ['nodemon']);
});
gulp.task('default', ['nodemon']);
my app.js file is:
express = require('express');
var app = express();
app.use(express.static('../views'));
app.use(express.static('../bower_components/angular'));
app.use(express.static('./directives'));
app.listen(1337);
console.log("The port is listening");
答案 0 :(得分:1)
'无法获得/'当您针对localhost:1337
的路由发出请求时,当您转到undefined
时显示的是Express的常规消息。需要为要提供的页面定义路径。您需要在http://localhost:1337/
添加路径以处理对应用根目录的请求。
app.get('/', function(req, res) {
// return back a message
res.send('Welcome!');
});
将上面的代码段放在app.listen()
上方,然后将消息"欢迎!"将会显示。
要在html文件中提供视图,您需要添加视图引擎,以便Express了解如何呈现文件。此外,需要配置views
属性,以便Express知道从哪里呈现您的视图。下面的示例使用ejs来处理普通的html文件,而不用担心像jade
这样的模板引擎。
app.use('views', path.join(__dirname + '/views'));
app.engine('html', require('ejs').renderFile);
app.use('view engine', 'html');
现在我们可以使用render对象上的res函数发送index.html文件:
app.get('/', function(req, res) {
res.render('index');
});
这是来自ExpressJS的guide,关于如何在Express中实现路由。