不能GET/express.js路由

问题描述:

我正处于一个简单的任务管理器的初期阶段,我想用MEAN堆栈来构建。 我可以计算/解决一个简单的路由问题。除了404客户端错误,我没有在终端或控制台中看到任何错误消息。不能GET/express.js路由

根路径没问题。我得到了回应 我使用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:[email protected]: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

在低于浏览器中的404错误的链接
var express = require('express') 
var router = express.Router(); 

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

module.exports = router; 

截图在端口3456

404 error - screenshot

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

+0

问题编辑:我**不能** /解决一个简单的路由问题,因此上述问题。谢谢!! :) – SandyL

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

tasks.js

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

或者,如果你想要做的是从端点/API将用户引导到/API /任务那么你可以做这样的:

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

希望这有助于。