我正处于想要使用 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 错误的屏幕截图如下链接
感谢您的帮助。我相信它可以是一个小细节。虽然很难调试。
最佳答案
发生此错误是因为没有处理端点 /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/