最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在Express JS中使用导出的功能?

运维笔记admin9浏览0评论

如何在Express JS中使用导出的功能?

如何在Express JS中使用导出的功能?

我想做的是使用Express JS中的app.use()调用导出的函数,但我不确定该怎么做。我尝试了以下代码:

var express = require('express');
var router = require('./routing');
var checks = require('./api/checks');
var app = express();

app.use(checks.tests());
app.use('/about', router);

app.listen(3000, function () {
  console.log('Server started with port 3000.');
});

但是一旦尝试启动节点服务器,就会出现以下错误:

tests work correctly!
C:\xampp\htdocs\javsgreen_express\node_modules\express\lib\application.js:210
    throw new TypeError('app.use() requires a middleware function')
    ^

TypeError: app.use() requires a middleware function
    at Function.use (C:\xampp\htdocs\javsgreen_express\node_modules\express\lib\application.js:210:11)
    at Object.<anonymous> (C:\xampp\htdocs\javsgreen_express\app.js:6:5)
    at Module._compile (internal/modules/cjs/loader.js:945:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)
    at Module.load (internal/modules/cjs/loader.js:798:32)
    at Function.Module._load (internal/modules/cjs/loader.js:711:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1014:10)
    at internal/main/run_main_module.js:17:11

并且JS check.js正确位于./api/(./api/checks.js)中,并且该文件的代码为:

module.exports = {
    tests: function() {
        console.log("tests works correctly!");
    }
}

所以,我说错了,或者我忘记了一些东西。 **哦,现在我有了通知(在提交此消息之前,我已经尝试过一次),消息“测试正确!!,它在控制台中正确显示,就在错误发生之前。

有什么想法吗?

回答如下:

您正在尝试将导出的模块作为中间件传递。我建议阅读Middleware是什么。您不能将常规功能作为中间件传递。您可以看到console log,因为调用了checks.tests()并返回了console log,但是当Express尝试将其用作中间件时,您会看到。坏了您使用导出功能的语法是正确的,只是您在错误的位置使用它。

P.S-如果将来您要制作自己的自定义中间件。然后此语法可能会起作用

发布评论

评论列表(0)

  1. 暂无评论