javascript - 如何从 Angular 前端服务查询用户?

标签 javascript mongodb angular mongoose

问题:

我正在尝试使用以下方式查询前端 Angular 2 服务中当前登录的用户:

 UserModel.findById(userID, function (err, user) {

浏览器似乎可以实现这种行为,我如何从我的服务中查询用户?

<小时/>

错误:

使用 webpack 运行 npm run build 后,然后运行 ​​npm start:

user.js?b9cb:19 Uncaught TypeError: mongoose.model is not a function

这让我上网搜索错误的含义,结果发现 mongoose 不支持客户端查询?

https://github.com/Automattic/mongoose/issues/4779

<小时/>

代码:

模型/用户

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongooseUniqueValidator = require('mongoose-unique-validator');

var schema = new Schema({
    firstName: {type: String, required: true},
    lastName: {type: String, required: true},
    password: {type: String, required: true},
    email: {type: String, required: true, unique: true},
    polls: [{type: Schema.Types.ObjectId, ref: 'Poll'}],
    votes: [{
      poll: {type: Schema.Types.ObjectId, ref: 'Poll'},
      choice: {type: Number},
    }],
});

schema.plugin(mongooseUniqueValidator);

module.exports = mongoose.model('User', schema);

客户端服务

var UserModel = require('../../../models/user');

voted(poll: Poll, userID: string, choice: number) {
          UserModel.findById(userID, function (err, user) {
            var result = "";
            for (var i = 0; i < user.votes.length; i ++) {
              if (user.votes[i].poll == poll.pollId) {
                result = "disabled";
                if (user.votes[i].choice == choice) {
                  result =  "selected";
                }
              }
            }
            return result;
          })
        }

最佳答案

检查 Angular2 的 http 模块以发出请求。这是一个 GET 请求,但我相信如果您愿意,您可以发出所有其他请求。

import { Component } from '@angular/core';
import { Http } from '@angular/http';

@Component({
  selector: 'http-app',
  templateUrl: 'your-template.html'
})
class YourComponent {
  constructor(http: Http) {
    http.get('your-endpoint')
      .map(response => response.json())
      .subscribe(json => this.json = json);
  }
}

关于javascript - 如何从 Angular 前端服务查询用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44066842/

相关文章:

javascript - 如何获取系统命令的输出作为函数的返回值?

javascript - Mongoose + Node.js : Async issue

angularjs - 以数组作为参数的 Angular 资源更新方法

javascript - Angular2 同步 promise

javascript - 如何以 Angular react 形式执行最小和最大验证?

javascript - 基于本地存储的 react 策略警报

javascript - 使用 html5 本地存储显示值

node.js - 了解 Mongoose [Schema.Types.Mixed]

angular - 一般如何链接对 ng2-Translate 和 rxjs 可观察量的调用?

javascript - 由于屏幕方向更改而调整大小*后,如何获取元素的新尺寸*?