Я пытаюсь сделать POST-запрос к MongoDB
Сначала я использую сервис в Angular
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpClientModule } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class RequestService {
constructor(private http: HttpClient) { }
postTask(task) {
const headers = new HttpHeaders();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
return this.http.post('http://localhost:3000/tasks', task, {
headers: headers});
}
}
И использую его в таком компоненте как:
postData(data) {
this.service.postTask(data).subscribe( (res) => {
console.log(data);
});
}
Console.log дает мне строку.
Проблема в том, что когда я пытаюсь опубликовать данные, я не могу передать req.body, аргумент, который должен быть опубликован. console.log (req.body) возвращает {} для меня. Если я передам строку типа 'test3' (прямо сейчас в примере так), запрос будет опубликован.Как я могу передать аргумент (req.body)?
Вот как я могу опубликовать его в БД
const app = express();
//Middleware for CORS
app.use(cors());
// Parsers for POST data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// Point static path to dist
app.use(express.static(path.join(__dirname, 'dist')));
var todoSchema = new Schema({
taskName: String,
createdAt: Date,
isDone: Boolean,
prioraty: String
}, {
collection: 'tasks'
});
var Model = mongoose.model('Model', todoSchema);
mongoose.connect('mongodb://localhost:27017/admin').then(() => {
console.log("connected");
}).catch (() => {
console.log("not connected");
});
mongoose.connection.once('open', function () {
console.log('mongodb connected.');
});
//Save Task
app.post('/tasks', function(req, res) {
console.log("Here is req2", req.body);
var savedata = new Model({
'taskName': 'test3',
'isDone': false,
'createdAt': Date.now(),
'prioraty': 'medium'
}).save(function (err, result) {
if (err) throw err;
if (result) {
res.json(result)
}
})
});
PS.В консоли полезная нагрузка здесь, поэтому она должна работать ..