我正在努力让一些非常简单的东西与node.js一起使用,而且我现在还有点卡住了。希望有人可以帮助我解决这个问题..我正在尝试一个非常简单的node.js应用程序..基本上有一个index.html文件,其中有一个名称作为参数的表单..按钮的onclick调用一个JQuery脚本使用从html表单获取的NAME值对node.js脚本执行POST请求。 现在对node.js脚本发出post请求,该脚本在其默认端口上运行HTTP服务器。所有node.js脚本都接受该参数并回复一个非常简单的响应,其中包括发送的POST参数..这个响应被JQuery捕获并使用alert给用户。 所以我有index.html和login.js作为我的两个脚本..现在我使用heroku来托管这些文件..问题是,一旦他们上传它默认情况下没有真正打开html文件..它运行login.js默认情况下......因为HTML永远不会被打开..这可能是因为我有一个procfile将login.js加载到dyno ..但是如果我删除procfile然后我在日志中收到一条错误,说“没有运行web进程” .. 所以基本上,长话短说,有没有办法让index.html和node.js文件在同一个heroku实例上运行,其中html请求node.js获取信息并将其返回.. 这是我的html和node.js脚本的链接
https://dl.dropbox.com/u/904687/index.html https://dl.dropbox.com/u/904687/login.js
答案 0 :(得分:1)
一种选择是使用Node.js Express.js来提供html文件,然后还处理登录路由。
整个事情看起来像。
file:package.json
{
"name" : "LoginPage",
"version" : "0.0.1",
"dependencies" : {
"express" : "3.x"
},
"main" : "index.js"
}
file:index.js
var express = require('express');
var app = express();
var oneDay = 86400000;
app.use(express.compress());
app.use(express.static(__dirname + '/public', { maxAge: oneDay }));
app.use(express.bodyParser());
app.listen(process.env.PORT);
app.post('/', function(req, res){
var result = req.rawBody;
res.send("hello there world data is " + result);
});
目录结构
package.json
index.js
public
index.html