我在 index.js 文件中有 2 个不同的端点。 android 应用程序使用这些端点从本地 MongoDB 数据库调用和检索数据。第一个端点“/AddArac”在启动时工作正常,但如果在调用“/ListArac”后调用“/AddArac”,则会出现错误。
例如: /AddArac - /ListArac => 这个顺序对两者都可以。 /ListArac - /AddArac => 此命令不适用于 /AddArac。
var mongodb = require('mongodb');
var objectID = mongodb.ObjectID;
var express = require('express');
var bodyparser = require('body-parser');
var app = express();
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({ extended: true }));
var mongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017'
app.post('/AddArac', (request, response, next) => {
mongoClient.connect(url, { useNewUrlParser: true }, function (err, client) {
var db = client.db('basaranSMSDev');
var data = request.body;
var name = data.name;
var plaka = data.plaka;
var tel = data.tel;
var json = { 'name': name, 'plaka': plaka, 'tel': tel };
db.collection('Araclar').find({ 'plaka': plaka }).count(function (error, number) {
if (number > 0) {
response.json('Araç daha önce kaydedilmiş.');
}
else {
db.collection('Araclar').insertOne(json, function (error, res) {
if (err) {
res.json('Araç kaydında hata oluştu tekrar deneyiniz.');
console.log('Arac eklenemedi', err);
}
else {
res.json('Araç eklendi');
console.log('Arac eklendi.');
}
});
}
client.close();
});
});
});
app.get('/ListArac', (req, res) => {
mongoClient.connect(url, { useNewUrlParser: true }, function (err, client) {
var db = client.db('basaranSMSDev');
var items = db.collection('Araclar').find().toArray();
items.then(function (result) {
console.log(result)
res.json(result)
})
console.log(items);
client.close();
});
})
错误:
<块引用>C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\utils.js:106 抛出错误; ^ 类型错误:res.json 不是函数 在 C:\Users\Dilber\Basarannodejs\index.js:138:29 在 executeCallback (C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\operations\execute_operation.js:70:5) 在 C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\operations\insert_one.js:34:21 在 handleCallback (C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\utils.js:102:55) 在 C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\operations\common_functions.js:269:5 在 C:\Users\Dilber\Basarannodejs\node_modules\mongodb\lib\core\connection\pool.js:405:18 在 processTicksAndRejections (node:internal/process/task_queues:75:11)
答案 0 :(得分:0)
在你的代码中
app.post('/AddArac', (request, response, next) => {
您已使用 response
作为响应参数。
但是你在
res
if (err) {
res.json('Araç kaydında hata oluştu tekrar deneyiniz.');
res
不是
db.collection('Araclar').insertOne(json, function (error, res) {