2017-04-02 12 views
0

クライアント側のjavascriptから、私はajaxポストごとに3変数を送信し、サーバー上ではクライアントのjsonコンテンツを表示しようとしています。jsonで投稿データを受け取ることができませんでした

ファイル:./routes/index.js

'use strict' 

const express = require('express') 
const user_controller = require('../controller/user') 

const api = express.Router() 


// pagina de Inicio 
api.get('/index',function(req,res){ 

    res.render('index') 
}) 

// Gestion de usuarios 
api.get('/usuarios',user_controller.getAllUsers) 
api.post('/usuarios',user_controller.newUser) 
api.get('/usuario',user_controller.getUser) 
api.post('/logear',user_controller.logear) 
api.post('/registrar',user_controller.registrar) 

module.exports = api 

ファイル:./controller/user.js

function registrar(req,res){ 

var bcrypt = require('bcrypt'); 
var BCRYPT_SALT_ROUNDS = 12; 

var user = req.body.user; 
var email = req.body.email; 
var pass = req.body.pass; 

console.log('info: ' + user + ' ' + email + ' ' +pass); 
//console.log('perro: ' + req.body); 

// encriptamos la contraseña 
bcrypt.genSalt(10, function(err, salt) { 

    if(error) throw error; 

    else{ 

     bcrypt.hash(pass, BCRYPT_SALT_ROUNDS, function(err, hash) { 
      pass = hash; 
     }); 
    } 

}); 

//bcrypt.hash(pass, BCRYPT_SALT_ROUNDS).then(function(hashedPassword) {pass = hashedPassword}); 

conexion_db.query({ ... etc 

問題がどこにあるか知っている、私はコード(リファクタリング)を取り付けファイル:./app.js

'use strict' 

//configuracion del servidor 
const express = require('express'); 
const bodyParser = require('body-parser'); 
const app = express(); 


app.use(bodyParser.urlencoded({extended:true})); 
app.use(bodyParser.json()); 
app.set('view engine','jade'); 
app.set('views', __dirname + '/views'); 
app.use(express.static(__dirname + '/public')); 

const api = require('./routes'); 
app.use('/api',api); 


module.exports = app 

ファイル:情報:あなたが設定されていないため不定不定不定

答えて

0

bodyParserミドルウェアはJSONデータを扱うことができない私はCMDサーバーに乗る

$.ajax({ 
      url: 'http://localhost:3000/api/registrar', 
      data: JSON.stringify({'user': $('#nick').val(),'email': $('#email').val(),'pass': $('#pass').val()}), 
      type: "POST", 
      dataType: 'json', 
      success: function(json) { 
       console.log("json: " + json.estado); 
       console.log("json: " + json.user); 
       console.log("json: " + json.pass); 

、これはclient.js contentTypeパラメータのContentType.jQuery ajaxのデフォルト値は "application/x-www-form-urlencodedです。文字セット= UTF-8" あなたはtype.Youがアプリケーション/ JSONにContentTypeを設定する必要があり、JSONでデータを送信している.But。

ます。また、データパラメータにPlainObjectを与えることができます。

+0

はどうもありがとうございました、それは本当です、私は、POSTの要求の内容の種類が不足していたと思います:) –

関連する問題