PDA

View Full Version : پُست کردن اطلاعات در node.js و express



elyas74
شنبه 28 تیر 1393, 15:12 عصر
- سلام ، به تازگی شروع به یادگیری node.js و express کردم ،ولی مشکل بزرگی که برام پیش اومد اینه که نمیتونم اطلاعات فرم هام رو post کنم ، مراحل کارم به این صورته :

- مثلا یک فایل html دارم که میخواد اطلاعاتش رو post کنه ، به این صورت :

<form method="post" action="localhost:3000/post">
<input name="name" type="text"/>
<button type="submit">submit </button>
</form>

- و برای دریافت اطلاعات به این شکل میخوام بگیرمش :

var bodyParser = require('body-parser');
app.use(express.bodyParser());

app.post("/post" ,function(req ,res ){
console.log(req.body.name);
res.send(req.body.name);
});
ولی وقتی چیزی در فرم مینویسم و submit میکنم مرورگر ارور میده و در سرور هم خروجی اطلاعاتی چه در کنسول و چه در وب ندارم.

- اطلاعات تکمیلی :
- ماژول body-parser در express 4 حذف شده و به خاطر این موضوع الان express 3.4.8 رو نصب کردم تا با این ماژول مشکلی نداشته باشم.
- در تمام ویدئو هایی که دیدم دقیقا به همین صورت ارتباط برقرار میکنند بین این دو و در جستجو ها هم به نتیجه ای نرسیدم.
- سوالم رو وقتی با express 4 کار میکردم در سایت stackoverflow.com هم پرسیدم که به نتیجه ای نرسیدم، این لینکش :
http://stackoverflow.com/questions/24798870/post-data-in-node-js
- این هم خروجی firefox بعد از submit .

The address wasn't understood
Firefox doesn't know how to open this address, because one of the following protocols (localhost) isn't associated with any program or is not allowed in this context.
- اگر از دوستان کسی اطلاعاتی داره واقعا ممنون میشم راهنماییم کنه.

elyas74
شنبه 28 تیر 1393, 16:09 عصر
- در فایل html در تگ input باید به جای عبارت :

localhost:3000/post
از

http://localhost:3000/post
استفاده میکردم.

ravand
شنبه 28 تیر 1393, 19:22 عصر
این مثال رو تست کن مشکلی نداره:

<form action="http://127.0.0.1:8080/adress" method="post">name:<input type="text" name="name" /><input type="submit" value="ارسال" /></form>

ravand.js
var express = require('express');var app = express();
app.use(express.bodyParser());
app.post('/adress', function(req, res) {
res.send('You sent the name "' + req.body.name + '".');
});
app.listen(8080, function() {
console.log('send');
});