我正在制作一个nodeJS模块,我想使用expressJS作为它的框架。
我想看看如何进行,包括内部函数和app.get();。并通过其他文件(例如实际应用)调用它。
var express = require("express");
var app = express();
app.get("/", function (req, res) {
exports.type = function (text) {
console.log(req.ip);
console.log(text);
}
});
现在,当我使用它时,我会在实际的应用程序上调用它,例如:
var web = require("directory_to_file");
var express = require("express");
var app = express();
var http = require("http").Server(app);
app.get("/", function (req, res) {
web.type("Hello, world");
});
http.listen(10022, function () {
console.log("server is up");
});
我收到一个错误:
TypeError: Property 'type' of object #<Object> is not a function
任何人都知道一种方法来使我可以调用该函数吗?
最佳答案
在您的directory_to_file
中,您仅在不会被调用的app.get('/')
上导出。
您可以在directory_to_file
中添加以下代码
var express = require('express');
var router = express.Router();
router.get('/', function(req, server) {
console.log(req.ip);
});
module.exports = router;
在主文件中,您可以使用
app.use('/', web)
简短说明:
您正在
directory_to_file
文件中创建一个新的Express应用程序/配置,它将不会启动或使用。因此,您的app.get事件不会被触发一次。这就是为什么
web.type
不是函数的原因。您没有导出任何内容。使用我提供的方式。这是一种常用的方法。
您可以将我提供的代码称为“路线”。创建多个路由/路由文件,并将它们包括在您的main方法中。
关于node.js - 如何使用expressJS创建一个nodeJS模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33057663/