使用express 3.1.0,我有一个非常简单的形式:
<form action="/signup" method="post">
<div>
<label>Username:</label>
<input type="text" name="username"/><br/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div><input type="submit" value="Sign Up"/></div>
</form>
并在app.js中:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, fs = require('fs')
, User = require('./models/User.js')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/form', function(req, res) {
fs.readFile('./form.html', function(error, content) {
if (error) {
res.writeHead(500);
res.end();
}
else {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(content, 'utf-8');
}
});
});
app.post('/signup', function(req, res) {
var username = req.body.username;
var password = req.body.password;
User.addUser(username, password, function(err, user) {
if (err) throw err;
res.redirect('/form');
});
});
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
尝试发布此表单时,我得到:
Cannot POST /signup
并在控制台中:
"NetworkError: 404 Not Found - http://localhost:3000/signup"
我在这里想念什么?
您的示例对我有用。我删除了对用户,用户和路由的引用,以便可以运行它,并且HTTP POST已接收并正确显示在控制台中。
app.post('/signup', function(req, res) {
var username = req.body.username;
var password = req.body.password;
console.log("post received: %s %s", username, password);
});
我怀疑该错误是在您的User.addUser()代码中。
问题内容: 我似乎无法恢复发送到我的Node.js服务器的发布请求的表单数据。我在服务器代码和发布请求(在chrome中使用postman发送)的下方放置了: 发布请求 NodeJS服务器代码 登录方法尝试获取,但是始终为空。我在SO上看到过其他描述这种行为的案例,但是没有相关的答案在这里适用。 感谢您的帮助。 问题答案: 通常,快速应用程序需要指定适当的主体解析器中间件才能包含主体。 [编辑]
问题内容: 好,这就是我得到的,基本上是单击一个按钮并执行以下代码: 除了传递给Monsterequest.php以外,其他所有东西似乎都按预期工作,该帖子没有传递到其自身上,并且页面在传递给主要父对象时基本上重新加载了它的自我…(我不确定是否是,但是monsterrequest.php本身似乎可以很好地工作,但是在加载时它根本无法按预期工作,我完全感到困惑。我基本上想发布数据而无需重新加载页面。
我正在测试邮递员上的优步API,我能够成功地发送一个与表单数据的请求。当我试图使用Node.js和axios库翻译这个请求时,我得到了一个错误。 以下是我的邮递员请求: 我得到的响应是: 我希望得到与Postman相同的响应,Node.js脚本中的配置变量有问题吗? 任何帮助都将不胜感激!
问题内容: 我必须承认我有点困惑…我以前从未做过,而且我显然缺少一些东西 当我通过http.post将数据传递到我的php文件时,我似乎无法收集数据… 有人可以告诉我为什么这行不通吗? FormData会显示在控制台日志中,并且可以确定正在写入文件。但是,看起来好像没有数据传递。 这是在我的php文件中。试图将提交表单中的数据写入文件中(只是测试)。 问题答案: 经过大量研究后,我发现这有点像ph
问题内容: 我正在使用express,无法从bodyParser获取表单数据。无论我做什么,它总是会变成一个空对象。这是我明确生成的app.js代码(我唯一添加的是底部的app.post路由): 这是我的HTML表单: 当我提交表单时,req.body是一个空对象{} 值得注意的是,即使我从表单标签中删除了enctype属性,也会发生这种情况 …我有什么地方想念/做错了吗? 我正在使用节点v0.4
问题内容: 当前设置 我有这样的HTML表单。 我可能在页面上有很多这些表格。 我的问题 如何异步提交此表单,而不进行重定向或刷新页面?我知道怎么用。我遇到的问题是从javascript中的HTML检索数据,然后将其放入发布请求字符串中。这是我当前用于zXMLHttpRequest的方法。 例如,假设单击了表单的“提交”按钮时调用了javascript方法,那么如何从该方法访问表单的值并将其添加到