这是我的设置:
- 托管Cloud9 IDE
- Heroku 托管环境
- 渴望学习 node.js
我正在学习http://www.nodebeginner.org上的教程
Manuel 展示了如何创建一个名为 server.js 的自定义模块:
var http = require("http");
function start() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
他展示了如何从 index.js 中引用这个自定义模块:
var server = require("./server");
server.start();
我尝试在 cloud9 ide 中运行 index.js,但它挂起或给我一个 Service Temporarily Unavailable 错误。我认为这可能是 cloud9 的问题,所以我将它推送到我的 Heroku 实例。从 Heroku,我收到一个应用程序错误页面。Heroku 日志显示:
←[33m2012-08-13T19:03:19+00:00 heroku[slugc]:←[0m Slug compilation finished
←[35m2012-08-13T19:03:21+00:00 heroku[web.1]:←[0m Starting process with command `node index.js`
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Object.<anonymous> (/app/index.js:1:70)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Module._compile (module.js:446:26)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Object..js (module.js:464:10)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Function.<anonymous> (module.js:383:11)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Module.load (module.js:353:31)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Function._load (module.js:311:12)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at Array.0 (module.js:484:10)
←[35m2012-08-13T19:03:21+00:00 app[web.1]:←[0m at EventEmitter._tickCallback(node.js:190:38)
←[35m2012-08-13T19:03:23+00:00 heroku[web.1]:←[0m Process exited with status 1
←[35m2012-08-13T19:03:23+00:00 heroku[web.1]:←[0m State changed from starting to crashed
我用谷歌搜索了它,发现与本地 cloud9 安装有关的问题,但在托管版本上没有。我还尝试将 server.js 从根目录移动到 node_modules 文件夹,但似乎无法让它工作。我的第一步是启动并运行标准的“Hello World”应用程序,以证明调试模式和 heroku 部署,一切正常。这是我遇到困难的自定义模块。
任何帮助表示赞赏。谢谢!