【发布时间】:2019-02-21 22:27:21
【问题描述】:
我正在尝试让 Express 和 Multer Node.js 包与 Meteor 1.7 一起使用,但我最终得到了错误消息。
我按照本教程 https://themeteorchef.com/tutorials/using-npm-packages 并采取以下步骤安装 Express 和 Multer 软件包:
创建了一个新的流星项目
运行
meteor npm install express multer --save命令-
通过 api.js 文件将这两个包导入到应用程序中(在开发期间导入到服务器和客户端),内容如下:
import { Meteor } from 'meteor/meteor'; import multer from 'multer'; import express from 'express'; const app = express(); app.use(function (req, res, next) { console.log('Time:', Date.now()) next() }); 在系统控制台中,出现以下错误:
TypeError: express 不是函数
Meteor 退出时:
代码 1 ==> 您的应用程序正在崩溃。等待文件更改。
我做错了什么?
【问题讨论】:
-
您好 kv2016,欢迎来到 SO!查看您发布的代码,这确实是 100% 的工作。您可以尝试使用
require代替导入吗? (就像快递文档说的那样)。在引擎盖下 Meteor 将require视为默认导入 -
另外,由于express依赖NodeJS提供http服务器,所以不应该在客户端导入
-
你确定你在正确的文件夹中运行了
npm install吗? -
你好,弗雷德。谢谢您的回答!我在流星项目的根文件夹中运行
npm install命令。更改为require也无济于事,将功能导入服务器端也无济于事(这是计划)。问题仍然存在,无法将 express 识别为函数,这必须与错误导入有关,但我不明白为什么 -
好的,我想我找到了警告。我在安装 npm 包时让 Meteor 在 localhost 中运行,并认为服务器会导入新包,因为它总是在代码更改时重新启动。刚刚在服务器上运行了 console.log(express),它现在输出了一个函数列表。但是,当我昨天尝试使用一些 Atmosphere 软件包时,它们直接开箱即用,无需关闭 Meteor localhost。谢谢大家
标签: javascript node.js express meteor node-modules