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));
});
})
答案 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问题。