Nodejs / express - fresh install在尝试导航到路由时失败

nodejs / express - fresh install fails when attempting to navigate to routes

本文关键字:导航 路由 失败 express fresh install Nodejs      更新时间:2023-09-26

我刚刚在一个新的开发服务器上安装了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);

这是我包里的东西。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:

我还尝试导航到用户路由。我在这里为您复制并粘贴了url,以及控制台上的输出:

http://mydevserver15:3000/mytest/users

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

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

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

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

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