2017-12-02 7 views
1

명시 적 앱에 문제가 있습니다. 제가하고있는 일은 핸드 바에 형태를 갖는 것입니다. 이 튜토리얼에 따라 사용자를 등록하기 만하면됩니다. https://www.learn2crack.com/2016/09/android-user-registration-login-node-client.html 하지만 웹 앱을 조정하는 것과 같습니다. 이처럼router.post에서 본문을 가져올 수는 없지만 app.post를 사용하면됩니다. js/express

<div style="text-align:center"> 
<form method="POST" action="/registerUser" enctype="application/x-www-form-urlencoded"> 
    Username: <input type="text" name="name" value=""/><br> 
    Email: <input type="text" name="email" value=""/><br> 
    Password: <input type="text" name="password" value=""/><br> 
    Repeat password: <input type="text" name="repeat_password" value=""></input><br> 
    <input type="submit" value="Register!"></input> 
</form> 
</div 

:

그래서 나는이 같은 양식을 만들었습니다. 그런 다음 그 결과 (registerUser)를 처리 할 라우터를 호출 할 때 req.body.name이 정의되어 있지 않습니다. (btw는 내가 확인한 req.query, req.params 등이 모두 정의되지 않았습니다. 그냥 내용이 도착하지 않습니다. 라우터에 내가 할 그럼 언제 :..

router.post('/registerUser', (req, res) => { 
    console.log("YO THERE WE GO"); 
    console.log(req.body); 

///..... rest 

이 그것을 정의되지 작동하지 않습니다 그러나, 나는 내 app.js 폴더에 할 경우 (경로는 분리되어 있지만 다른 전화와 함께 작동 앱

app.post('/registerUser',function(req,res){ 
    console.log(req.body); 
}) 

나는 다음과 같은 한 :

'use strict'; 

// app.js 
const express = require('express'); 
const session = require('express-session'); 
const app = express(); 
const path = require('path'); 
const bodyParser = require('body-parser'); 
app.use(express.static(path.join(__dirname, 'public'))); 
const router = require('./routes/router'); 
app.use(router); 
const mongoose = require('mongoose'); 
const validate = require("validate.js"); 
const logger = require('morgan'); 
require('./db'); 
// const User = mongoose.model('User'); 
const Item = mongoose.model('Item'); 
const Pattern = mongoose.model('Pattern'); 

app.set('view engine', 'hbs'); 
app.set('views', __dirname + '/views'); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 
01이 명확이 간단한 코드로 작동) GET

및 라우터 :

'use strict';

require('../db'); 
const express = require('express'); 
const router = express.Router(); 
const mongoose = require('mongoose'); 
const Pattern = mongoose.model('Pattern'); 

라우터를 사용하지 않고 응용 프로그램을 사용할 때 잘못된 점은 무엇입니까?

미리 감사드립니다.

답변

2

그냥 app.use (bodyParser.json()); 경로 통화 전처럼

'use strict'; 
const mongoose = require('mongoose'); 
const validate = require("validate.js"); 
const logger = require('morgan'); 
require('./db'); 

// const User = mongoose.model('User'); 
const Item = mongoose.model('Item'); 
const Pattern = mongoose.model('Pattern'); 
const router = require('./routes/router'); 
// app.js 
const express = require('express'); 
const session = require('express-session'); 
const app = express(); 
const path = require('path'); 
const bodyParser = require('body-parser'); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.set('view engine', 'hbs'); 
app.set('views', __dirname + '/views'); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 
app.use(router); 
+0

이 작품은 고맙습니다! –