Каждый раз, когда я отправляю данные из форм angular, я получаю undefined в бэкэнде (node.js), даже если я использовал body-parser для анализа входящих данных.
server. js
const express= require("express");
const app=express();
const bodyParser = require("body-parser");
const api=require("./server/routes/api");
const cors=require('cors')
const port=4440;
app.use(cors())
app.use("/api",api)
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.get("/", (req,res)=>{
res.send("hello from server")
})
app.listen(port,()=>{
console.log("server listening on port"+" "+port)
})
Ниже приведен api. js код
api. js
const express= require("express");
const router=express.Router();
const User=require("../models/user")
const mongoose= require('mongoose');
const db="mongodb+srv://srihari:dbuser@cluster0.yuykq.mongodb.net/users?retryWrites=true&w=majority"
mongoose.connect(db,{useNewUrlParser:true,useUnifiedTopology:true},(err)=>{
if(err){
console.error("Error" + err)
}else{
console.log("DB connected!")
}
}
)
router.get("/", (req,res)=>{
res.send("From API route")
})
router.post("/register",(res,req)=>{
let userData=req.body;
console.log(userData);
let user=new User(userData)
user.save((error,registeredUser) =>{
if(error){
console.log(error);
}else{
console.log(registeredUser)
}
})
})
module.exports=router;
angular код формы
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class UserserviceService {
url="http://localhost:4440/api/register";
constructor(private http:HttpClient) { }
registrationdata(user:any){
console.log(user);
return this.http.post<any>(this.url,user);
}
// loginData(data:any){
// return this.http.post<any>(this.)
// }
}
выше приведен код, который находится во внешнем интерфейсе всякий раз, когда я отправляю данные формы, которые он регистрирует в моей консоли, но в серверной части я получаю req.body как «undefined».