如何在解析服务器云代码中使用模块?

How to use module in parse-server cloud code?

我有 Parse 之前在他们的博客上发布的以下代码,例如 this one

    var _ = require("underscore");
Parse.Cloud.beforeSave("Post", function(request, response) {
    var post = request.object;

    var toLowerCase = function(w) { return w.toLowerCase(); };

    var words = post.get("text").split(/b/);
    words = _.map(words, toLowerCase);
    var stopWords = ["the", "in", "and"]
    words = _.filter(words, function(w) { return w.match(/^w+$/) && ! _.contains(stopWords, w); });

    var hashtags = post.get("text").match(/#.+?b/g);
    hashtags = _.map(hashtags, toLowerCase);

    post.set("words", words);
    post.set("hashtags", hashtags);
    response.success();
});

问题是我无法使用 npm start 启动我的服务器,因为它在 var _ = require("underscore"); 行崩溃了。错误是

Error: Cannot find module 'underscore'.

如何在解析服务器的云代码上下文中解决此问题?

只需转到您的解析服务器中的 package.json 并添加 underscore.js 作为依赖项,如下所示。

"dependencies": {
    "express": "~4.11.x",
    "kerberos": "~0.0.x",
    "parse-server": "^2.2.15",
    "parse": "~1.8.0",
    "nconf": "0.8.4",
    "underscore": "1.8.3"
  }

然后,如果运行在本地连接服务器,使用:

npm install

然后

npm start

云代码现在 运行 正常。