我启动节点服务器时找不到npm模块用于clarifai

时间:2017-05-27 18:37:26

标签: node.js npm node-modules clarifai

module.js:341
    throw err;
    ^

Error: Cannot find module 'clarifai'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (/Users/shiva/seefood-backend/app.js:4:16)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)

当我node app.js时,我在终端上收到了上述消息。我在https://developer.clarifai.com/quick-start/上使用npm install clarifai安装了Clarifai npm软件包,但它仍然给了我这个错误。我是否需要全局安装软件包? 这也是我的app.js

var express = require('express')
var app = express();
var bodyParser = require('body-parser')
var Clarifai = require('clarifai')
var secrets = require('./secrets')
var keys = secrets.clarifaiConfig()

app.use(bodyParser.json());

var ClarifaiInstance = new Clarifai.App(
  keys.access_key,
  keys.secret_key
)

var store

var foodModel = 'bd367be194cf45149e75f01d59f77ba7'
var fnol = function getPredictionAsJSON(imageURL) {
  ClarifaiInstance.models.predict(foodModel, imageURL).then(
    function(response) {
      store = response.outputs[0].data
      console.log(store + ' from inside the fn');
    },
    function(err) {
      console.error(err);
    }
  );
  return store
}

app.listen(8000, function () {
  console.log('Recognize app listening on port 8000!')

  app.post('/classify', function(req, res) {
    var clarifaiData
    var imageURL = req.body.imageURL
      clarifaiData = fnol(imageURL)
      // console.log('cldata : '+ clarifaiData)
      var responseObject = {imageURL: imageURL, data: clarifaiData }
      // console.log('rObj : '+responseObject)
      res.send((responseObject));
  });

  app.get('/classify', function(req, res) {
    res.json((store));
  });
})

2 个答案:

答案 0 :(得分:1)

您不需要全局安装。安装后,将在同一位置有一个node_modules目录,其中包含clarifai包以及任何其他依赖项。

答案 1 :(得分:0)

首先,当您在...处制作Clarifai实例时,您错过了分号。

var ClarifaiInstance = new Clarifai.App(
  keys.access_key,
  keys.secret_key
)

......这可能会导致您的问题。

检查您的package.json依赖项中是否列出了Clarifai。如果没有,请尝试运行npm install clarifai --save,因为--save选项指示npm自动将包添加到依赖项列表中。

此外,有时运行简单的npm install可以解决可能发生的任何依赖或奇怪的node.js问题。