无法GET /定义路由

时间:2017-11-30 14:54:54

标签: javascript node.js mongodb express get

我在这里遇到了一些问题。我是node.js和Rest API的新手,但我正在努力学习。我使用MongoDB创建了与我的数据库通信的REST API,我使用Postman来测试我的路由是否正常工作。问题是,我的路线停止工作,我不知道为什么。

这是我的index.js

const express =     require('express');
const bodyParser =  require('body-parser');
const mongoose =    require('mongoose');

//set up express app
const app = express();

//connect to mongoose
mongoose.connect('mongodb://localhost/usersregs', { useMongoClient: true });
mongoose.Promise = global.Promise;

//parse the body before routes so teh acess is sucessfull
app.use(bodyParser.json());

//error handling middleware
app.use(function(err, req, res, next){
    console.log(err);
    //res.status(450).send({err: err.message})
});

//initialize routes
app.use('/api', require('./routes/api')); 

//listen for request
app.listen(4000, function(){
    console.log('Now listening for request at port 4000');
}); 

这是我的api.js,我的路线已定义

const express =     require('express');
const router =      express.Router();
const Users =       require('../models/users');
const Joi =         require('Joi');

//testing
router.get('/',function(req, res, next){
    res.send('hello');
});

//turning the method public
module.exports = router;

我会在另一条路线上使用Joi。我在代码中找不到任何错误,使用“nodemon index”上传没问题。我在http://localhost:4000尝试了accessind并收到了Cannot GET /。我在api.js中定义了其他路由,但无论我发送什么样的请求,我总是得到Cannot GET /作为响应或URL根据我的请求...

1 个答案:

答案 0 :(得分:1)

由于您将./routes/api.js引入.use('/api')的某些内容,因此所有这些路线都与'/ api'相关。

所以,你没有'/'路线,但http://localhost:4000/api/应该有效。