Android에서 앱을 만들려고하는데 문제가 있습니다. 나는 웹을 수색했으나 확실한 해결책을 찾지 못했다.Node.js Express로 개장 할 때 @Field 매개 변수 추출하기
내 Android 앱에서 Retrofit을 사용하여 로그인 작업에 대한 게시물 요청을 보냅니다.
@FormUrlEncoded
@POST("/login")
Call<Boolean> loginUser(@Field("username") String userName, @Field("password") String password);
내 서버는 명시 적으로 Node.js에 있으며 사용자 이름과 암호 매개 변수를 추출하는 방법을 알지 못합니다.
내 app.js 파일은 다음과 같습니다
var http = require('http');
var express = require('express');
var bodyparser = require('body-parser');
var connection = require('./dbConnection');
var app = express();
require('./models')(app);
require('./controllers')(app);
require('./routes')(app);
app.use(bodyparser.urlencoded({extended: true}));
app.use(bodyparser.json());
connection.init();
var server = app.listen(3000, function() {
console.log('Server listening on port ' + server.address().port);
});
을 그리고 내 경로는 로그인에 파일은 다음과 같습니다
var loginM = require('../models/login');
var loginC = require('../controllers/login');
module.exports = function(app) {
app.post('/login/', function(req, res, next) {
loginM.attemptLogin(req.body, res);
});
}
req.body 나에게 @Field 변수를 제공하지 않는 것 , 나는 req.headers 및 req.params뿐만 아니라 성공했다. 누군가 그들을 추출하는 방법을 설명 할 수 있습니까?
은 많은 NodeJs 측면에서
body-parser가 설치되어 있으며 app.js 파일에 포함되어 있습니다. 두 번째 발췌 문장이있는 곳에서도 라우트 파일에 포함시켜야합니까? – Aidin
@Aidin 경로가 정의되기 전에'app'가'bodyParser.urlencoded()'를 사용하고 있습니까? –
제 코드를 더 잘 보여주기 위해 제 질문을 수정했습니다. – Aidin