node.js - 如何在我自己的节点 js 模块中使用模块?
问题描述
我如何自己使用第三方模块?例如,如果我在应用程序主文件中有类似(使用 body-parser):
app.post("/dothis", (req,res)=>{
var name = req.body.name;
console.log(name);
};
这工作很好。但是当我想把它放在单独的文件中(例如 mod.js),并这样写:
exports.own = function(){
var name = req.body.name;
console.log(name);
}
然后在主文件中写道:
const mod = require(__dirname + "/mod.js")
app.post("/dothis", (req,res)=>{
mod.own();
};
然后我得到错误,req 未定义。
我正在尝试添加 mod.js 文件
const {req} = require ("http");
所以我得到了无法读取未定义名称的值的错误。
有一个问题,我如何将使用 body-parser、express 和其他模块的代码传输到单独的文件或创建自己的模块以获取工作模块?
谢谢!
解决方案
由于您没有通过请求,因此您变得未定义。
看看你的代码,试试这个。
exports.own = function(req){ // use request
var name = req.body.name;
console.log(name);
}
const mod = require(__dirname + "/mod.js")
app.post("/dothis", (req,res)=>{
mod.own(req); // pass request
};
推荐阅读
- haproxy - 使用 Envoy Proxy 或 HA Proxy 使用 IDP 进行身份验证
- python - 为什么这个 docker 和烧瓶应用程序会给出 NameError?
- flexbox - 没有媒体查询的 Flexbox 布局
- node.js - “typeof Sequelize”类型缺少“Sequelize”类型中的以下属性:Sequelize、config、modelManager、connectionManager 等 23 个
- amazon-ec2 - ECS 中的 EC2 在 Aws 中不断重启
- php - Opencart第二商店403禁止错误
- c++ - 如何在 `push_*()` 和 `emplace_*()` 函数之间进行选择?
- azure - 如何将随机子网 ID 分配到 azurerm_network_interface?
- python - 如何从文件夹中打印多个随机文件名?
- opendaylight - 我无法在 opendaylight 中安装 dlux 和 l2switch 功能