Node启动我的服务器,gulp也是如此,但gulp找不到任何路径

时间:2015-10-14 03:21:55

标签: node.js gulp

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

1 个答案:

答案 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中实现路由。