nodejs / express - 尝试导航到路由时,全新安装失败

时间:2016-10-18 12:53:00

标签: javascript node.js express

我刚刚在新的开发服务器上安装了node和express ... 我通过运行以下命令创建了一个测试应用程序:

dev-server15:/var/www# express mytest

   create : mytest
   create : mytest/package.json
   create : mytest/app.js
   create : mytest/public
   create : mytest/public/javascripts
   create : mytest/public/images
   create : mytest/public/stylesheets
   create : mytest/public/stylesheets/style.css
   create : mytest/routes
   create : mytest/routes/index.js
   create : mytest/routes/users.js
   create : mytest/views
   create : mytest/views/index.jade
   create : mytest/views/layout.jade
   create : mytest/views/error.jade
   create : mytest/bin
   create : mytest/bin/www

   install dependencies:
     $ cd mytest && npm install

   run the app:
     $ DEBUG=mytest:* npm start

dev-server15:/var/www# cd mytest/
dev-server15:/var/www/mytest# npm install

npm install命令完成,没有任何错误。 我通过执行以下操作启动应用程序:

dev-server15:/var/www/mytest# DEBUG=mytest:* npm start

> mytest@0.0.0 start /var/www/mytest
> node ./bin/www

  mytest Listening on port 3000 +0ms

然后我尝试转到http://mydevserver15/test

导航到索引页面

我可以在控制台中看到请求...但它返回404.

dev-server15:/var/www/mytest# DEBUG=mytest:* npm start

> mytest@0.0.0 start /var/www/mytest
> node ./bin/www

  mytest Listening on port 3000 +0ms
GET /mytest 404 734.109 ms - 965
GET /stylesheets/style.css 200 12.556 ms - 111

我想开箱即用,默认路线有效。

我检查过的内容:

我知道我需要在app.js文件中引用我的路线。 所以我试图检查,我确实看到我有以下条目:

var routes = require('./routes/index');
var users = require('./routes/users');

然后,我看到了:

app.use('/', routes);
app.use('/users', users);

这是我在package.json中的内容,因此您可以看到版本号:

dev-server15:/var/www/mytest# cat package.json 
 {
  "name": "mytest",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.13.4",
    "jade": "~1.11.0",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0"
  }
}

编辑1

这里是routes / index.js的内容:

dev-server15:/var/www/mytest# cat routes/index.js 
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

编辑2:

我也尝试导航到用户路线。我在这里复制并粘贴了你的网址,以及控制台上的输出:

http://mydevserver15:3000/mytest/users

这将在控制台中创建以下输出:

GET /mytest/users 404 74.173 ms - 965
GET /stylesheets/style.css 304 2.851 ms - -

1 个答案:

答案 0 :(得分:0)

您有一条路线:" / ",这意味着您应该导航到mydevserver15以查看根页面。如果您想要页面 / test ,则应更改:

router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

router.get('/test', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

或将其注册为新路线。