使用 node.js 创建的端点无法正常工作?

时间:2020-12-26 15:15:26

标签: node.js mongodb

我在 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)

1 个答案:

答案 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) {

相关问题