具有共享 CLI 和浏览器数据库的 NodeJS 项目
NodeJS project with shared CLI and browser databases
我看过 linvodb3 and pouchdb for a project that I am working on. According to ,当通过 angular-cli 创建时,我无法直接从 CLI 访问 IndexDB 数据库。
在 NodeJS/Angular2 应用程序中是否有可用的 NoSQL 数据库创建一个可从 CLI 和网页访问而无需使用服务器实例的实例?
我需要预装一个数据库,其中包含不会在客户端上更新(至少在早期阶段)但允许离线文档库的搜索和其他数据库功能的信息。
编辑 1
let PouchDB = require('pouchdb');
let db = PouchDB('./db');
这给了我一个名为 "db" 的文件夹,其中包含直接从 NodeJS CLI 进行测试时的数据库文件。因为,只要我从 Angular2 和 NodeJS 调用相同的 db 文件夹,我就可以预发布数据。
对于 Angular2:
import * as PouchDB from 'pouchdb';
import { Injectable } from '@angular/core';
@Injectable()
export class PouchdbService {
private _db: any; // <-- Database Object
private _databaseName: string = "./my_db"; // <-- Database == folder location
constructor() {
this._db = new PouchDB(this._databaseName);
}
}
来自 NodeJS:
#!/usr/bin/env node
'use strict'
let PouchDB = require ('pouchdb');
let databaseName = "./my_db"; // <-- same as in angular
let db = new PouchDb ( databaseName ); // <-- should be the same database
我正在使用 NodeJS/Electron/Express-PouchDB 来让它工作。我还通过使用 cluster 生成了 express 以确保 express 是从 electron 开始的,并且两者一起被拆除。
对于NodeJS/Electron方:
const PouchDB = require('pouchdb');
const express = require('express');
const expressPouchDB = require('express-pouchdb');
const app = express();
PouchDB.defaults({prefix: './db/'});
app.use('/',expressPouchDB(PouchDB, {
overrideMode: {
include: ['routes/fauxton']
}
})
);
resolve(app.listen(3000));
对于Angular2/4:
import * as PouchDB from 'pouchdb';
import * as pouchdbFind from 'pouchdb-find';
@Injectable()
export class PouchdbService {
private _localdb: string = "http://localhost:3000/main" ;
private _pouchDb: any;
constructor() {
this._pouchDb = new PouchDB(this._localdb);
PouchDB.plugin(pouchdbFind);
...
这使我可以访问 PouchDB 服务。
我看过 linvodb3 and pouchdb for a project that I am working on. According to
在 NodeJS/Angular2 应用程序中是否有可用的 NoSQL 数据库创建一个可从 CLI 和网页访问而无需使用服务器实例的实例?
我需要预装一个数据库,其中包含不会在客户端上更新(至少在早期阶段)但允许离线文档库的搜索和其他数据库功能的信息。
编辑 1
let PouchDB = require('pouchdb');
let db = PouchDB('./db');
这给了我一个名为 "db" 的文件夹,其中包含直接从 NodeJS CLI 进行测试时的数据库文件。因为,只要我从 Angular2 和 NodeJS 调用相同的 db 文件夹,我就可以预发布数据。
对于 Angular2:
import * as PouchDB from 'pouchdb';
import { Injectable } from '@angular/core';
@Injectable()
export class PouchdbService {
private _db: any; // <-- Database Object
private _databaseName: string = "./my_db"; // <-- Database == folder location
constructor() {
this._db = new PouchDB(this._databaseName);
}
}
来自 NodeJS:
#!/usr/bin/env node
'use strict'
let PouchDB = require ('pouchdb');
let databaseName = "./my_db"; // <-- same as in angular
let db = new PouchDb ( databaseName ); // <-- should be the same database
我正在使用 NodeJS/Electron/Express-PouchDB 来让它工作。我还通过使用 cluster 生成了 express 以确保 express 是从 electron 开始的,并且两者一起被拆除。
对于NodeJS/Electron方:
const PouchDB = require('pouchdb');
const express = require('express');
const expressPouchDB = require('express-pouchdb');
const app = express();
PouchDB.defaults({prefix: './db/'});
app.use('/',expressPouchDB(PouchDB, {
overrideMode: {
include: ['routes/fauxton']
}
})
);
resolve(app.listen(3000));
对于Angular2/4:
import * as PouchDB from 'pouchdb';
import * as pouchdbFind from 'pouchdb-find';
@Injectable()
export class PouchdbService {
private _localdb: string = "http://localhost:3000/main" ;
private _pouchDb: any;
constructor() {
this._pouchDb = new PouchDB(this._localdb);
PouchDB.plugin(pouchdbFind);
...
这使我可以访问 PouchDB 服务。