首页 > 解决方案 > 如何用 node js 定义路由?

问题描述

大家,早安!从昨天开始,我尝试为一个简单的 nodejs api 定义一个路由。在我的情况下,服务器调用 express 模块,它还调用文件'messCtlr.JS'并定义路由。

const express = require('express');
const bodyParser = require('body-parser');
var mongoose = require('mongoose');
var messCtlr = require("./routes/messCtlr");

mongoose.connect('mongodb://localhost:27017/cooldb', {useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false}, function(err){
  if(err){throw err}
});
var app = express();
app.use(bodyParser.json());

app.use('/messages', messCtlr);
app.get('/', (req, res) => {
res.json({
    message: 'Behold The MEVN Stack!'
});
});


const port = process.env.PORT || 4000;
app.listen(port, () => {
console.log(`listening on ${port}`);
});

在 messCtlr.js 文件中,调用 express 模块的 Router 并将其包含在脚本末尾导出的 router 变量中。

var express = require('express');
var router = express.Router();
const bodyParser = require('body-parser');
var mongoose = require('mongoose');
var Mess = require('../models/Message')

router.get('/messages', (req,res)=>{
    res.json({
        blabla: 'le message est ici'
    })
});
module.exports = router;

当我启动服务器(端口:4000)并输入“本地主机:4000 / 消息”时,我收到错误“无法获取 / 消息”。我在哪里犯了错误?

标签: node.js

解决方案


您是否在routes/index.js文件中保留了以下代码段?

router.get('/', function(req, res) {
  res.redirect('/messages');
});

推荐阅读