节点启动我的服务器,吞咽,但吞咽没有找到任何路径
问题描述:
我相信这是小事,但我无法弄清楚。 Node,nodemon和gulp使用app.js来启动我的服务器,所以我不确定为什么一个方法可以工作,而gulp不能。如果我启动我的服务器使用:节点启动我的服务器,吞咽,但吞咽没有找到任何路径
nodemon app.js或 节点app.js它开始罚款,当我在浏览器中使用路径localhost:1337它做它应该做的。
当我使用命令:
一饮而尽
它说,它启动了服务器,但是当我浏览到本地主机:1337不显示不是“得不到/”以外的任何与我无关来源显示在检查员。我仍然收到“app正在监听”消息,如我的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");
答
的当一个请求是否在对undefined
路线做出“无法GET /”显示,当你去localhost:1337
是快递的一般消息。需要为要提供的页面定义路由。您需要在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');
});
这是一个guide从如何实现高速路由ExpressJS。
它的工作原理是它打印欢迎使用屏幕,但它仍然不显示我的源代码或使用我在视图目录中的index.html文件。为什么在终端中使用命令“nodemon app.js”允许服务器在使用“gulp”运行默认的Nodemon启动app.js并返回任何内容时在我的视图目录中获取index.html?他们都运行相同的文件,但吞咽(这是使用nodemon来启动app.js)不给我与运行“nodemon app.js” – Mike
相同的结果吞咽和普通终端做的是完全相同的事情,他们是都使用nodemon应用程序执行'app.js'文件。问题不在于我可以看到的gulp vs terminal,根据你发送的源代码看起来就像你的'app.js'文件缺少路由。我已经更新了上面的答案,希望能够更好地解决有关提供意见的问题。 – peteb