Tag: 方法

Node.JS / Mongoose / Express – >对象没有方法“findAll”

我试图从我的model.js传递一个方法到我的route.js ..而我的路线找不到任何方法! 我search了一个解决scheme,并testing了很多代码,没有成功。 我是Node的初学者,如果这是一个愚蠢的错误,那么很抱歉。 这是我的代码的一部分: Route.js var mongoose = require('mongoose'); var membersModel = new require('../models/MemberModel'); // Member list page exports.list = function(req, res){ membersModel.findAll(function(err, docs){ res.render('list.jade', { title: 'My Registration App – Member list', member: docs }); }); }; MemberModel.js var mongoose = require('mongoose'), Schema = mongoose.Schema, ObjectId = Schema.ObjectId; // Open DB connection var […]

NodeJS:扩展Class和__construct方法

我将我的系统从PHP迁移到NodeJS,我有以下疑问: 在PHP中,我有class class Users extends Groups { function __construct(){ parent::__construct(); //do something } } 但是,如何在Javascript / NodeJS(ExpressJS)中做到这一点? 我认为这是扩展,但我如何定义__construct方法? 什么是在类实例的开始将调用的方法的名称,如在PHP中? var utils = require('utils'); var Groups = require('./groups.js'); var Users = function(){ //where is the __construct?? }; util.inherits(Users, Groups);

在服务器上运行一个asynchronous的方法

我有一个meteor服务器方法,执行一个函数,我想在后台运行。 我希望服务器方法继续,而函数运行在不同的过程中。 方法: myMethod: function(arg) { _event.emit("myEvent",args); …do some other stuff } 我希望服务器做其他的事情,并返回到客户端,并在后台执行_event.emit中的东西,没有结果必须发回客户端。 它目前所做的是在_event.emit中运行这些东西,然后返回到客户端。 我尝试通过在服务器端调用一个空的callback函数来解决这个问题,但这并没有办法 myMethod: function (arg) { return Meteor.call("secondMethod", _.toArray(arg), function() {}) } secondMethod: function (arg) { _event.emit("myEvent",args); } 希望有人知道这个解决scheme。 谢谢

在Javascript类中调用另一个方法

在Javascript中定义一个类时,如何从另一个方法调用一个方法? exports.myClass = function () { this.init = function() { myInternalMethod(); } this.myInternalMethod = function() { //Do something } } 上面的代码在执行时给了我下面的错误: ReferenceError:myInternalMethod未定义 我也试过this.myInternalMethod和self.myInternalMethod,但都导致错误。 什么是正确的方法来做到这一点?

meteor:如何防止客户访问方法

所有的meteor方法都可以从客户端和服务器端调用。 比方说,用户知道或可以预测服务器上的所有方法名称,然后他可以调用它们并使用它的结果,但他想要的。 例如:执行跨域http请求和返回响应的方法可以用来通过调用大量数据来重载服务器Meteor.call(httpLoad, "google.com"); ,或者从mongo加载数据的方法可以用来访问数据库文件,如果客户端知道文件_id Meteor.call(getUserData, "_jh9d3nd9sn3js"); 。 那么,如何避免这种情况,可能存在一个比Meteor.methods({…})更好的存储仅限服务器的函数的方法呢?

crypto-js如何隐藏类方法?

从这开始 import crypto from 'crypto-js' global.crypto = crypto 当我从浏览器控制台访问encryption时,我得到以下错误 crypto['AES'].encrypt('MyString', 'pass').toString() // Uncaught TypeError: Cannot read property 'encrypt' of undefined(…) 但是当我从Node访问它的时候,它的工作原理是-_- crypto['AES'].encrypt('MyString','pass').toString() // Encrypted String Crypto JS如何做到这一点? 不能直接从浏览器访问,而是在节点访问?

JavaScript – 如何列出对象的属性?

有没有办法列出一个对象(甚至可能是一个函数)的所有属性,包括不可枚举的,但不使用Object.getOwnPropertyNames或Object其他方法? 所以,例如,我需要获取本地String构造函数( fromCharCode , fromCodePoint , raw等)的所有属性,但是我不允许使用来自Object本地函数getOwnPropertyNames 。 有没有办法做到这一点? 我试过for..in和for..of循环,但不是所有的属性都列出。 另外,我已经尝试了Object.keys ,但是又一次,并没有列出所有的属性。 另外,要清楚我要求的是什么:以下是不允许的: var a = Object.getOwnPropertyNames.bind(Object); console.log(a(String)); 我在问这个,因为我正在玩一些游戏(称为ElevatorJS ),用户在这里写一个JavaScript程序,在受限制的条件下实现某些function。 在这个特定的条件下, getOwnPropertyNames方法被重写并且等于null ,所以我们不允许使用它。 但是,事实certificate,他们已经隐藏了一些非可枚举的属性在String构造函数中作为一个属性,所以我必须以某种方式访问​​它。 另外,它们也覆盖了Object其他方法(如entries , getOwnPropertyDescriptors等)。 有没有办法做到这一点? 先谢谢你。

检测成功读取stream打开

我正在为Express.js实现静态服务中间件的caching,其工作原理如下 – 请求到达时,中间件首先尝试从文件系统提供文件,如果没有,则从上游提取文件并存储在文件系统中。 问题是我不知道如何正确检测“caching命中”事件。 staticMiddleware = function(req, res, next) { // try to read file from fs filename = urlToFilename(req.url); stream = fs.createReadStream(filename); // cache miss – file not found stream.on('error', function() { console.log('miss ' + req.url); // get file from upstream, store it into fs and serve as response stream = fetchFromUpstream(url); stream.pipe(fs.createWriteStream(filename)); stream.pipe(res); […]

node.js中对象的方法和属性之间的区别

我想了解对象的属性如何与对象的原型上定义的方法相关联。 下面的代码打印“ECMA样式5”,而我期望它打印“ECMA样式3”。 var util = require('util'); function MyError() { } util.inherits(MyError, Error); Object.defineProperty(MyError.prototype, 'toJSON', { enumerable: false, value: function () { return 'ECMA5 style'; } }); MyError.prototype.toJSON = function() { return 'ECMA3 style'; } var x = new MyError(); console.log(JSON.stringify(x)); 我正在阅读一篇文章,但是我无法理解为什么样式3没有打印,因为它在文件中被定义为第二个。 不应该重写现有的方法定义吗? 我正在运行节点v0.10.21

创build方法来更新和保存与mongoose的文件?

查看官方文档后 ,我仍然不确定如何创buildmongoose内部使用的方法来创build和更新文档。 那我该怎么做呢? 我有这样的想法: mySchema.statics.insertSomething = function insertSomething () { return this.insert(() ? }