节点启动我的服务器,吞咽,但吞咽没有找到任何路径

问题描述:

我相信这是小事,但我无法弄清楚。 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。

+0

它的工作原理是它打印欢迎使用屏幕,但它仍然不显示我的源代码或使用我在视图目录中的index.html文件。为什么在终端中使用命令“nodemon app.js”允许服务器在使用“gulp”运行默认的Nodemon启动app.js并返回任何内容时在我的视图目录中获取index.html?他们都运行相同的文件,但吞咽(这是使用nodemon来启动app.js)不给我与运行“nodemon app.js” – Mike

+0

相同的结果吞咽和普通终端做的是完全相同的事情,他们是都使用nodemon应用程序执行'app.js'文件。问题不在于我可以看到的gulp vs terminal,根据你发送的源代码看起来就像你的'app.js'文件缺少路由。我已经更新了上面的答案,希望能够更好地解决有关提供意见的问题。 – peteb