node.js - 如何用 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 / 消息”时,我收到错误“无法获取 / 消息”。我在哪里犯了错误?
解决方案
您是否在routes/index.js
文件中保留了以下代码段?
router.get('/', function(req, res) {
res.redirect('/messages');
});
推荐阅读
- c# - 是否可以缩短此代码?如果字符串为空或开头有特定值
- hyperledger-fabric - 在fabric中,如果一个块中的两个交易发生冲突,结果是什么
- reactjs - How to prevent parent component from re-rendering with React (next.js) SSR two-pass rendering?
- django - 来自 API 调用的 Django 自动填充表单字段
- php - PHP POSTGRESQL 数据库连接
- python - 在文件 Dockerfile、docker-compose.yml、python.py 和 shell 之间共享值
- java - 谷歌登录错误代码 10:在 toast 消息中显示
- javascript - 防止从 firebase 获取数据的延迟时间(请检查详细信息以了解清楚)
- laravel - 如何在 Laravel ServiceProvider 上记录更改
- mybatis - 是否使用了 mybatis 方法`BaseBuilder#parseExpression(...)`?