我从网上尝试了以下基本示例;
var loki = require('lokijs');
var lokiDatabase = new loki('oops.json');
var collection = lokiDatabase.addCollection('props',{
indices: ['name']
});
function hello() {
var insertjson = {name:'Ram'};
collection.insert(insertjson);
lokiDatabase.saveDatabase();
var select = collection.findOne({name:'Ram'});
console.log('select response:'+ select.name);
}
hello();
我能够使用findOne
方法获得输出;
但是,这里的问题是;如教程所述,LokiJS是内存数据库。哦,我可以看到所有插入和更新都在oops.json文件中显示。
我们在哪里存储/从那里到内存?
我是否理解错误的概念?
答案 0 :(得分:0)
//lokirouter.js
const db=require('./lokidb')
const router=require('express').Router
class Erouter{
static get(){
router.get("/",(req,res)=>{
db.loadDatabase({},function(){
try{
const data=db.getCollection('items').find({})
res.send(data).status(200)
}
catch(r){
res.status(500).send(`${r}`)
}
})
})
router.post("/",(req,res)=>{
db.loadDatabase({},()=>{
try{
const data=db.getCollection('items').insert(req.body.criteria)
db.saveDatabase(data)
db.save(data)
res.send(data).status(200)
}
catch(r){
res.status(500).send(`${r}`)
}
})
})
return router
}}
module.exports=Erouter
//lokidb.js
var loki=require('lokijs')
var db = new loki('loki.db');
var items = db.addCollection('items');
module.exports=db
//lokiapp.js
const lokirouter=require('./lokirouter')
const express =require("express")
const bodyParser = require('body-parser')
const app=express()
const db=require('./lokidb')
const port=8000;
app.listen(port)
console.log("Server Started"+ " "+port)
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
app.use("/",lokirouter.get())
答案 1 :(得分:0)
Lokijs是一个文档驱动的数据库,除了只存储一个json文件不需要存储记录外,还可以存储在本地数据库文件中,例如创建local_database.db。 如前所述,您必须使用邮递员运行它。 当您以json格式在请求正文中插入记录时 例如:{“ criteria”:{“ name”:“ jason”}}它将被插入到local_database.db文件中。类似地,您可以调用get api来检索记录。由于要查找特定记录,因此可以使用findOne({name:“ jason”})。