【问题标题】:How to add node js packages to Meteor app?如何将节点 js 包添加到 Meteor 应用程序?
【发布时间】:2019-02-21 22:27:21
【问题描述】:

我正在尝试让 Express 和 Multer Node.js 包与 Meteor 1.7 一起使用,但我最终得到了错误消息。

我按照本教程 https://themeteorchef.com/tutorials/using-npm-packages 并采取以下步骤安装 Express 和 Multer 软件包:

  1. 创建了一个新的流星项目

  2. 运行meteor npm install express multer --save命令

  3. 通过 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()
    });
    
  4. 在系统控制台中,出现以下错误:

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


【解决方案1】:

不确定是否可以将 express 与流星一起使用。 Meteor 有一个内置的 WebApp 模块,如果您正在尝试这样做,您可以使用它来添加自定义路由

https://docs.meteor.com/packages/webapp.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多