Я сделал приложение на своей машине, и он работает хорошо. Я загрузил его на сервер, и он сбой со следующей ошибкой:
node.js:116
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'xml2js'
at Function._resolveFilename (module.js:289:11)
at Function._load (module.js:241:25)
at require (module.js:317:19)
at Object.<anonymous> (/var/www/node/price/index.js:3:14)
at Module._compile (module.js:373:26)
at Object..js (module.js:379:10)
at Module.load (module.js:305:31)
at Function._load (module.js:271:10)
at Array.<anonymous> (module.js:392:10)
at EventEmitter._tickCallback (node.js:108:26)
Вот как начинается мое приложение:
var express=require('express');
var http=require('http');
var xml2js = require('xml2js');
var sys = require('sys');
var util = require('util');
Я установил как express, так и xml2js, используя npm. У меня есть такая же версия (v0.4.0) для node на моей машине и на моем сервере.
Я убедился, что путь wher xml2js и express reside (/usr/local/lib/ node/) включен в пути, где node ищет модули. (Я редактировал файл 'module.js' для печати путей, где он ищет модули.)
node.js:116
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'xml2js', in paths: /root/.node_modules,/root/.node_libraries,/usr/local/lib/node,/var/www/node/price/node_modules,/var/www/node/node_modules,/var/www/node_modules,/var/node_modules,/node_modules
at Function._resolveFilename (module.js:289:11)
at Function._load (module.js:241:25)
at require (module.js:317:19)
at Object.<anonymous> (/var/www/node/price/index.js:3:14)
at Module._compile (module.js:373:26)
at Object..js (module.js:379:10)
at Module.load (module.js:305:31)
at Function._load (module.js:271:10)
at Array.<anonymous> (module.js:392:10)
at EventEmitter._tickCallback (node.js:108:26)
Итак, что не так? У меня есть правильный путь, модуль есть. Почему он не может найти node? И тот же самый код работает плавно на моей локальной машине. Если это имеет значение, моя машина Mac, а на сервере работает CentOS.