无法获取/express.js 路由

cannot GET / express.js routing

我正处于一个简单任务管理器的早期阶段,我想将其与 MEAN Stack 结合使用。ui。 我可以figure/resolve一个简单的路由问题。除了 404 客户端错误,我在终端或控制台中没有看到任何错误消息。

根路径没问题。我收到回复 我使用 html 文档为两者呈现 ui。

这就是我设置 server.js

的方式
var express = require('express')
var path = require('path')
var bodyParser = require('body-parser')

var index = require('./routes/index');
var tasks = require('./routes/tasks');
var app = express();

const port = '3456'


app.use('/', index)
app.use('api', tasks) <= HERE

//view engine
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')
app.engine('html', require('ejs').renderFile);

//static folder
app.use(express.static(path.join(__dirname, 'client')))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: false}))



app.listen(port, function() {
    console.log('Starting the server at port'  + port );
})

tasks.js

在设定的路线渲染模板

var express = require('express')
var router = express.Router();
var mongojs = require('mongojs');
var db = mongojs('mongodb://sandy:cookie2080@ds147304.mlab.com:47304/tasklists_21092017', ['tasks'])

router.get('/tasks', function(req, res, next) {
    res.send('api')
    res.render('tasks.html')
    db.tasks.find(function(err, tasks){
        if (err) {
            res.send('error message ' + err)
        }

        res.json(tasks)
    })
})

module.exports = router;

并且,index.js fyi

var express = require('express')
var router = express.Router();

router.get('/', function(req, res, next) {
    res.render('index.html')
})

module.exports = router;

在端口 3456 上启动服务器后浏览器出现 404 错误link 的屏幕截图

404 error - screenshot

感谢您的帮助。我相信它可以是一个小细节。虽然很难调试。

发生此错误是因为没有处理端点 /api 的路由。您在这里可以做的是创建一个中间件来处理 /api。您可以在 tasks.js 中这样做:

tasks.js

router.get('/', function(req, res, next) {
   res.send('This is api.')
})

或者,如果您想做的是将用户从端点 /api 定向到 /api/tasks 那么你可以这样做:

router.get('/', function(req, res, next) {
   res.redirect('/api/tasks')
})

希望对您有所帮助。

我更改了端口号。问题是端口 3000 没有响应请求,因为它仍在被旧进程使用,因此产生了警告

错误号:'EADDRINUSE',。

刚用5000端口试了一下,顺利通过。

顺便说一句,我正在使用 vs 代码。