我正处于一个简单的任务管理器的早期阶段,我想用MEAN Stack构建。 我可以计算/解决一个简单的路由问题。除了404客户端错误之外,我在终端或控制台中看不到任何错误消息。
根路径没问题。我得到了回复 我使用html docs为两者渲染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错误链接下的屏幕截图
感谢您的帮助。我相信它可以是一个小细节。但是很难调试。
答案 0 :(得分:0)
发生此错误是因为没有处理端点 / 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')
})
希望这有帮助。
答案 1 :(得分:-1)
我更改了端口号。问题是端口3000没有响应请求,因为较旧的进程仍在使用它,因此会发出警告
errno:“ EADDRINUSE”。
仅使用端口5000进行尝试即可顺利通过。
通过我使用vs代码的方式。