小编Lib*_*hew的帖子

如何使用mongoose动态连接多个mongodb数据库?

在我的项目中有许多数据库,一个是masterDb,另一个是基于masterDb的数据库连接.例如,在验证页面中,用户可以输入"公司ID",可以使用masterDb检查此"公司ID",如果存在id,则返回特定公司的数据库名称.使用数据库名称我想连接到特定的公司数据库.

现在我可以成功登录并获得数据库名称.使用此db名称(req.headers ['x-key-db'])我可以连接到特定数据库.但在这里我将数据库连接代码放在每个api调用中.有没有其他方法可以创建一次并在每个api调用中动态使用它.

app.get('/api/student-limited/:_pageNumber/:_pageSize', function(req, res) {
		
	var db = mongoose.createConnection();
	db.open('mongodb://localhost:27017/'+req.headers['x-key-db']);
	var ClassSection = db.model('ClassSections', SectionSchema);
	var Student = db.model('Students', StudentSchema);
	
	var _pageNumber = parseInt(req.params._pageNumber), _pageSize = parseInt(req.params._pageSize);
	Student.find({}, function (err, _docs) {
		if(_docs){
			Student.find({}, null, {sort: { Name: 1} }).skip(_pageNumber > 0 ? ((_pageNumber-1)*_pageSize) : 0).limit(_pageSize).populate('_idClass').exec(function (err, docs) {
			if(err)
				res.json(err);
			else
				res.json({ "TotalCount" : _docs.length, "_Array" : docs});
		     });
	    }
	});
});
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

7
推荐指数
1
解决办法
4703
查看次数

参考错误:未定义 Rx

我刚开始学习 angular2,我正在尝试使用 angular2 做 RxJs 的样本。如果有人帮助我,将不胜感激。

RxJs 代码-

var obs = Rx.Observable.interval(500)
       .take(5)
       .do(i => console.log(i) );
Run Code Online (Sandbox Code Playgroud)

包.json

  {
    "name": "angular-quickstart",
    "version": "1.0.0",
    "scripts": {
      "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
      "lite": "lite-server",
      "postinstall": "typings install",
      "tsc": "tsc",
      "tsc:w": "tsc -w",
      "typings": "typings"
    },
    "license": "ISC",
    "dependencies": {
    "@angular/common": "~2.0.1",
    "@angular/compiler": "~2.0.1",
    "@angular/core": "~2.0.1",
    "@angular/forms": "~2.0.1",
    "@angular/http": "~2.0.1",
    "@angular/platform-browser": "~2.0.1",
    "@angular/platform-browser-dynamic": "~2.0.1",
    "@angular/router": "~3.0.1",
    "@angular/upgrade": "~2.0.1",
    "angular-in-memory-web-api": "~0.1.1",
    "bootstrap": "^3.3.7",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "5.0.0-beta.12",
    "systemjs": "0.19.39", …
Run Code Online (Sandbox Code Playgroud)

rxjs angular

6
推荐指数
2
解决办法
8722
查看次数

尝试从 Node.js Firebase 函数中读取 Firebase 数据库时无法确定 Firebase 数据库 URL

我正在使用 Flutter 构建一个访问 Firebase 数据库的应用程序。Flutter 方面一切都很好......但我是 Node.js 和 Cloud Functions 的新手。我正在尝试创建一个 Node.js 函数来对一个 Firebase 数据库节点上的记录删除事件做出反应,然后从其他两个 Firebase 数据库节点和来自 Firestore 的图像文件中删除记录。

我正在通过functions.database.onDelete调用对触发事件做出反应,没问题,但在下一个障碍 ietrying 读取 admin.database 以获取快照时遇到了问题。

我创建了一个虚拟函数,用于.onUpdate获取触发事件(不想像我使用的那样继续重新创建我的数据.onDelete),然后尝试读取我的 Firebase 数据库以访问不同的节点。触发事件被很好地拾取,但我似乎没有数据库引用 Url 来进行读取……但它是同一个数据库。调用 的控制台日志上的输出process.env.FIREBASE_CONFIG显示存在 Url。

包含的函数代码也有注释以显示我在控制台日志上获得的各种输出。

我快疯了.....请谁能告诉我我哪里出错了。过去两天一直在搜索 Google、Stackoverflow、Firebase 文档:-(


const admin = require("firebase-admin"); // Import Admin SDK
const functions = require("firebase-functions"); // Import Cloud Functions

admin.initializeApp({
  credential: admin.credential.cert(
    require("./user-guy-firebase-adminsdk.json")
  )
});

exports.testDeleteFunction = functions.database
  .ref("/user-guys/{userGuyId}")
  // Using .onUpdate as I don't want to keep restoring my …
Run Code Online (Sandbox Code Playgroud)

node.js firebase firebase-realtime-database google-cloud-functions firebase-admin

6
推荐指数
3
解决办法
1万
查看次数

unablle通过node-mailer发送电子邮件 发件人无效"emailid@gmail.com>"

我正在使用express,nodemailer和express来测试通过gmail帐户发送电子邮件.但由于某种原因,我无法发送它.此外,帐户电子邮件和密码是100%正确,仍然我收到此错误.错误不会告诉问题在哪里.

此外,我已经"打开"gmail设置,即降低了应用程序的设置.

我没有使用 http://nodemailer.com/2-0-0-beta/using-oauth2/ 即使我使用此电子邮件ID登录浏览器,我是否需要使用它?

我确实需要在不使用浏览器的情况下开发它,但我希望以前能够看到它.

{[错误:发件人无效"**********@ gmail.com>"]代码:'EENVELOPE',命令:'API'} /Users/jay/code/gmailSendEmail/app.js:43 res.json({yo:'error'}); ^

var nodemailer = require('nodemailer');

var express = require('express');
var app = express();
var nodeMailer = require('nodemailer');
var transporter = nodemailer.createTransport();

console.log ( ' coming here 1');



var router = express.Router();
app.use('/sayHello', router);
router.post('/', handleSayHello); // handle the route at yourdomain.com/sayHello

function handleSayHello(req, res) {
    // Not the movie transporter!
    var transporter = nodemailer.createTransport({
        service: 'Gmail',
        auth: {
            user: '****@gmail.com', // Your email id
            pass: '*****' // Your password
        } …
Run Code Online (Sandbox Code Playgroud)

gmail express nodemailer

2
推荐指数
1
解决办法
1171
查看次数

单元测试 $mdDialog 角材质

我在函数内调用了一个 $mdDialog 。我想对 $mdDialog 进行单元测试并取消案例。

下面是我的控制器代码(app.controller.js)。

 (function () {
    'use strict';

    app.controller('AppCtrl', AppCtrl);

    AppCtrl.$inject = ['$scope', '$mdDialog'];

    function AppCtrl($scope, $mdDialog) {

        $scope.saveEntry = function (ev) {
            var confirm = $mdDialog.prompt()
                .title('Save Entry')
                .textContent('If you want, you can add a description to explain what you changed.')
                .placeholder('Version Description')
                .ariaLabel('Version Description')
                .initialValue('')
                .targetEvent(ev)
                .ok('Save')
                .cancel('Cancel');

            $mdDialog.show(confirm).then(function (result) {
                $scope.status = true;
            }, function () {
                $scope.status = false;
            });
        };
    }

})();
Run Code Online (Sandbox Code Playgroud)

以下是规范代码(app.controller.spec.js):

describe('Unit test AppController: mdDialog', function …
Run Code Online (Sandbox Code Playgroud)

unit-testing angularjs karma-jasmine angular-mock angular-material

2
推荐指数
1
解决办法
1979
查看次数