mongodb - 无法获取/express.js 路由

标签 mongodb express routes mean-stack

我正处于想要使用 MEAN Stack 构建的简单任务管理器的早期阶段。 我可以计算/解决一个简单的路由问题。除了 404 客户端错误之外,我在终端或控制台中没有看到任何错误消息。

根路径没问题。我收到回复 我使用 html 文档来呈现两者的用户界面。

这就是我设置 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 仅供引用

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

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

module.exports = router;

在端口 3456 上启动服务器后浏览器中出现 404 错误的屏幕截图如下链接

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')
})

希望这对您有所帮助。

关于mongodb - 无法获取/express.js 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46355022/

相关文章:

node.js - 在 MongoDB 中的多个字段上使用 $in

node.js - 如何检测最近两分钟未触发的事件

python - 谷歌应用引擎: webapp2 routing not working

node.js - 如何使用 passport-jwt 验证路由?

rest - 如何从其他包中导入子路线

javascript - 使用 Vue JS 将 props 从不同的路由发送到同一组件

mongodb - mongodb中的数组大小函数

node.js - 使用 Mongoose 将平面数据转换为 mongodb 中的层次结构

MongoDB 查询连接两个集合

node.js - NodeJS ExpressJS - 如何记录生产服务器的错误?