javascript - Gunakan nodejs untuk memindahkan data pangkalan data ke meja depan Terdapat data dalam pangkalan data dan sambungan berjaya, tetapi mengapa tatasusunan kosong diperoleh?
ringa_lee
ringa_lee 2017-06-05 11:08:50
0
4
1168

1.api.js

2.db.js


3.vue

4

Hasilnya ialah:

Hasil yang diperolehi adalah tatasusunan kosong, tetapi kedua-dua pautan dan pangkalan data adalah betul. ? ?

ringa_lee
ringa_lee

ringa_lee

membalas semua(4)
滿天的星座

Inti masalah ini, seperti yang dikatakan @cheesekun, ialah mongoose secara automatik akan menukar nama koleksi (parameter pertama) dalam model kepada bentuk jamak.

Di sini saya memberikan proses eksperimen saya sendiri dan menyediakan dua penyelesaian di bawah.

Saya mula-mula mencipta projek mudah berdasarkan maksud topik

app.js

const express = require('express');
const app = express();

app.use('/api',require('./router/api'));

app.listen(3000, () => {
    console.log('Server is running!');
});
app.js
const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/test');
mongoose.connection
    .on('connected', _ => console.log('mongodb connect successed'))
    .on('error', _ => console.log('mongodb connect failed'))
    .on('disconnected', _ => console.log('mongodb connect disconnected'));

const Schema = mongoose.Schema;
const listSchema = new Schema({
    name: String,
    age: Number
});

const List = mongoose.model('list', listSchema);

module.exports = {
    List
}

module/db.js

const express = require('express');
const db = require('../module/db');

const router = express.Router();

router.get('/list', (req, res) => {
    db.List.find((err,data)=>{
        if(err){
            console.log(err);
        }else{
            res.json(data);
        }
    });
});

module.exports = router;

router/api.js

const list = new List({
    name: '代码创建的数据',
    age: 1
});
list.save(function (err, data) {
    console.log(data);
});

通过 可视化工具 连接到 mongodb 预先在 test 数据库 list 集合下插入了一条文档

发现问题

通过浏览器直接访问得到了 同题主一样的空数组

寻找原因

尝试插入一条文档到集合中

module/db.js 底部通过代码插入一条数据

const List = mongoose.model('list', listSchema,'list');

重新运行,并通过浏览器访问,返回了通过代码插入的数据

此时通过 可视化工具 可以发现 多出了 listsmodul/db.js

const listSchema = new Schema({
    name: String,
    age: Number
},{
    collection: 'list'
});

penghala/api.js rrreee Sambung ke mongodb melalui alat visualisasi dan masukkan dokumen di bawah koleksi senarai pangkalan data ujian terlebih dahulu

Masalah ditemui

Diakses terus melalui penyemak imbas dan mendapat tatasusunan kosong yang sama seperti subjek

Cari sebabnya

Cuba masukkan dokumen ke dalam koleksi

Di bahagian bawah modul/db.js

masukkan sekeping data

melalui kod

rrreee Jalankan semula dan akses melalui penyemak imbas, data yang dimasukkan melalui kod dikembalikan

🎜 🎜Pada masa ini, anda boleh menemui melalui alat visualisasi bahawa terdapat koleksi tambahan senarai, dan data yang kami masukkan melalui kod itu ada di dalamnya🎜 🎜🎜🎜🎜🎜 🎜Penyelesaian🎜 🎜🎜Jika anda tidak menyatakan nama koleksi secara eksplisit, mongoose akan menukar parameter pertama secara automatik dalam model() kepada bentuk jamak sebagai nama koleksi🎜🎜 🎜Sediakan dua penyelesaian, kedua-duanya nyatakan nama koleksi🎜 🎜Jenis pertama:🎜 🎜🎜Lepaskan parameter ketiga ke mongoose.model() untuk menentukan nama koleksi🎜🎜 rrreee 🎜Jenis kedua: 🎜 🎜🎜Lepaskan item konfigurasi kedua ke Skema untuk menentukan nama koleksi🎜🎜 rrreee
伊谢尔伦

Saya bertaruh 50 sen.
mongooseApabila mentakrifkan model, s ditambah secara automatik pada nama jadual, tetapi log masuk dan senarai anda tidak ditambah s
Pangkalan data tidak boleh dipanggil
Ini adalah blog yang saya tulis sebelum ini, dan ia disebut di bahagian bawah
mongoose deep lubang laut

Peter_Zhu

Tambah console.log(data) ke res.send(data) dan lihat jika terdapat sebarang hasil

某草草

Pertama sekali, semak terus sama ada nilai pulangan xhr dalam konsol mempunyai nilai Jika ada nilai, bermakna anda tidak memperolehnya dengan betul.

Jika tidak, ini bermakna anda tidak menghantar nilai sama sekali, yang bermaksud masalah berlaku di bahagian belakang, dan anda boleh kembali dan menyemak.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan