javascript - Express js 4路由直接使用来自其他文件的函数指针返回404
问题描述
这似乎应该如此简单。处理路由的函数在一个单独的文件中。但是,在需要该文件并将函数指针传递给app.get
它之后,它会返回 404。
我有一个简单的文件,它以函数作为键导出一个对象。
src/controllers/Block.js
module.exports = {
getBlocks: (req, res, next, body) => {
res.send('blocks')
}
}
然后在索引文件中创建一个基本的 Express 应用程序并导入该 Blocks.js 文件。我将该getBlocks
功能用于/blocks
路线。
src/index.js
const express = require('express')
const block = require('./controllers/Block')
const app = express()
const serverPort = 3000;
app.get('/blocks', block.getBlocks)
app.get('/home', (req, res) => {
res.send('home')
})
app.listen(serverPort, function () {
console.log('Your server is listening on port %d (http://localhost:%d)', serverPort, serverPort);
});
因此,虽然block.getBlocks
显然是一个函数,但当您访问时它仍然返回 404 localhost:3000/blocks
。但是,当您访问localhost:3000/home
它时,它会像您期望的那样呈现“家”。
我到底在这里想念什么?
解决方案
好的,我在本地安装了它并玩了一下,这使它工作:
src/controllers/Block.js
module.exports = {
getBlocks: (req, res) => {
res.send('blocks')
}
}
删除body
论据。我无法解释这一点。
推荐阅读
- javascript - 是否可以使用 Javascript 复制到剪贴板?
- react-native - React native : can't unzip the file I get with rn-fetch-blob
- sql - 具有多个线外约束的 ALTER TABLE 的铁路图不正确?
- amazon-dynamodb - 修改键属性时复制 DynamoDB 表
- perl - 使用 call_sv() 将数组引用传递给 perl 回调,我应该使用 newRV() 还是 newRV_noinc()?
- android - 谷歌日历 CRUD 编程
- paypal - Paypal 订阅,检查用户是否支付了下个月的费用
- java - 通过多线程读取大文件和进程
- vba - 运行时错误“91”:对象变量或未设置块变量目录邮件合并
- spring-boot - 如何将一个 Spring Boot 应用程序的引用添加到另一个 Spring Boot 应用程序