2015-12-04 2 views
0

Я новичок в nodejs и выражаю вообще. Я пытаюсь получить значение POST с html-страницы с помощью body-parser. Я попробовал несколько советов в SO, но не смог заставить его работать для меня.Экспресс и Body-Parser не возвращают значения

Вот код. Любые указатели будут высоко оценены. Заранее спасибо.

Server.js

var express = require('express'); 
    var mongoose = require('mongoose'); 
    var bodyParser = require('body-parser'); 
    var Subscribe = require('./models/subscribe'); 

    mongoose.connect('CREDENTIALS'); 

    var app = express(); 

    app.use(bodyParser.json(), bodyParser.urlencoded({ extended: false })); 

    var port = 3000; 

    var router = express.Router(); 

    router.get('/', function(req, res) { 
     res.json({ message: 'Test...' }); 
    }); 

    var subscribeRoute = router.route('/subscribe'); 
    subscribeRoute.post(function(req, res) { 
     var subscribe = new Subscribe(); 

     subscribe.email = req.body.email_notify; 
     console.log(subscribe); 

     subscribe.save(function(err) { 
     if (err) 
      res.status(500).send(err); 

     res.status(200); 
     }); 
    }); 

    app.use('/api', router); 
    app.listen(port); 

index.html

<form action="http://localhost:3000/api/subscribe/" method="POST" enctype="application/json"> 
    <input type="text" onfocus="if (this.value=='E-mail Address') this.value = ''" onblur="if (this.value=='') this.value = 'E-mail Address'" value="E-mail Address" id="email_notify" name="email_notify" /> 
    <button id="notify_me" ontouchstart="">Notify Me!</button><br/> 
    </form> 

Благодаря Суджит

+0

вы не подчиняющиеся Ваша форма ... – Mitchapp

ответ

-1

Сделать <input type='submit'> вместо <button> и удалить enctype форму формы.

Также в Chrome инструментов с открытыми для разработчиков, вкладка сети и убедитесь, что запрос отправляется на сервер при всех

+0

Форма будет отправлена ​​с помощью кнопки – stalin

+0

Hi. Я отправляю форму с помощью jquery post .... В любом случае я попытался перейти на ввод типа submit, но это тоже не работает. – werty37

+0

Если это работает с почтальоном, чем что-то не так с вашей подачей формы. Попробуйте удалить 'enctype' из формы. Постскриптум Может кто-нибудь объяснить, почему ответ опущен? – jonasnas

-1

изменений этого

app.use(bodyParser.json(), bodyParser.urlencoded({ extended: false })); 

Для этого

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
+0

Спасибо Сталину. Это тоже не работает. Приложение как-то работает, когда я использую Postman/Rest Easy. Так что я предполагаю, что есть какая-то проблема с html-файлом? – werty37