在Heroku

时间:2017-01-23 10:41:54

标签: javascript node.js heroku momentjs parse-server

我以前使用moment.js在Parse上有一些云代码。

我的main.js文件中的第一行相关代码是:

var moment = require('cloud/moment.js');

现在在Parse-Server上,我在日志中收到以下错误消息:

Starting process with command `npm start`

 > parse-server-example@1.4.0 start /app
 > node index.js

 module.js:471
     throw err;
     ^
Error: Cannot find module 'moment.js'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/app/cloud/main.js:1:76)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

有人可以告诉我发生了什么吗?

在网上阅读了相当多的内容后,我尝试了一些方法,例如:

var moment = require('./cloud/moment.js');
var moment = require('moment.js');

全部失败。

我确信文件moment.js存在于我的云文件夹下。 我还尝试安装新版本的时刻(来自:https://momentjs.com/),但无济于事。

检查package.json文件,其中包含以下内容:

  "dependencies": {
    "express": "~4.11.x",
    "kerberos": "~0.0.x",
    "moment": "^2.17.1",
    "parse": "~1.8.0",
    "parse-server": "*"
  },

2 个答案:

答案 0 :(得分:2)

错误可能是由这一行引起的:

var moment = require('moment.js');

应该是:

var moment = require('moment');

第一行在文件树中查找特定文件,而不是包。第二行查找包'moment.js。'

答案 1 :(得分:0)

moment添加到您的package.json文件中,让Heroku安装它,然后执行var moment = require('moment.js');

只需将此行"moment": "^2.14.1"添加到package.json文件的依赖项部分。

通常,您希望使用npm install --save <libraryname>添加依赖关系,以便将其添加到package.json文件中。

你可以这样做; npm install --save moment作为替代解决方案。