在VueJs中发布未定义响应的请求
我是VueJs和Expressjs的初学者。 我正在试图通过Vuejs和ExpressJs后端。 我向后端(expressJs)发送一个post请求,并且:
1-响应是未定义的2-同时我可以在铬开发工具中看到2个请求。 一个是Option,另一个是Post。 3-邮递员根本没有问题。
这里是快递app.js的代码
console.log('Server is running') const express = require('express'), bodyParser = require('body-parser'), cors = require('cors'), morgan = require('morgan'); app = new express(); //Setup middleware app.use(cors()); app.use(morgan('combined')) app.use(bodyParser.json()) app.post('/register', (req, res, next) => { res.send({ message: `Hello ${req.body.email}! your user was registered!` }) }); app.listen(8081);
这里是VueJs中的代码:
// Api Setting import axios from 'axios' export const HTTP = axios.create({ baseURL: `http://localhost:8081` }); // AuthenticationService import { HTTP } from '../services/Api' export default { register(credentials) { HTTP.post('register', credentials); } } // Register Component export default { data() { return { email: '', password: '' }; }, methods: { async register() { const response = await AuthenticationService.register({ email: this.email, password: this.password }); console.log(response); // the value is undefined } } };
我真的不知道我在这里错过了什么,我同时得到了一个未定义的响应和两个请求。 我欣赏任何提示。
Github上的整个代码: 这里
也许。 Authentication.register
没有返回任何东西,或者更具体地说是一个Promise
,它应该用来在await
调用中填充const response
。
尝试返回如下所示: return HTTP.post('register', credentials);
里面register
。
为此, HTTP.post('register', credentials)
也应该返回一些东西。
我使用JSON.stringify发送数据,你直接发送对象,所以
register(credentials) { HTTP.post('register', credentials); }
变
register(credentials) { HTTP.post('register', JSON.stringify(credentials)); }