我是节点中的n00b,并且发现util.inherits()
非常有用,除了它似乎替换了原始对象的整个原型.例如:
var myClass = function(name){
this._name = name;
};
myClass.prototype = {
(...)
};
util.inherits(myClass, require('events').EventEmitter);
Run Code Online (Sandbox Code Playgroud)
似乎抹去了原来的原型.
这给我带来了两个不便之处:
1 - 我必须在调用后声明为我的原型添加属性inherits
,
var myClass = function(name){
this._name = name;
};
util.inherits(myClass, require('events').EventEmitter);
myClass.prototype.prop1 = function(){...};
myClass.prototype.prop2 = function(){...};
Run Code Online (Sandbox Code Playgroud)
而且,最重要的是,我认为我不能从两个或更多不同的类继承.
任何人都可以向我解释为什么这是有道理的,什么是解决这个问题的好方法?
谢谢
我目前使用如下方式将单个对象上传到S3:
var options = {
Bucket: bucket,
Key: s3Path,
Body: body,
ACL: s3FilePermissions
};
S3.putObject(options,
function (err, data) {
//console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
但是当我有一个大型资源文件夹时,我使用AWS CLI工具.
我想知道,是否有一种原生方式与aws sdk做同样的事情(将整个文件夹上传到s3)?
我希望能够向客户端发出错误数据包,类似于注册中间件时的使用方式。
这有效:
var io = require('socket.io')();
io.use(function(socket, next){
if (socket.request.headers.cookie) return next();
next(new Error('Authentication error'));
});
Run Code Online (Sandbox Code Playgroud)
这不会:
io.on('connection', function(socket){
socket.emit('error', {errorMessage: 'errorMessage'});
//or
socket.emit('error', new Error('error'));
});
Run Code Online (Sandbox Code Playgroud)
Error: Uncaught, unspecified "error" event.
如何使用套接字对象发出错误事件?
为了掌握MVC,我写了以下内容:
//Model/Model.php
class Model
{
private $dbh;
public function __construct()
{
$this->dbh = dbConnect();
}
private function dbConnect()
{
//return database connection
}
public function crudMethod()
{
//interact with databse using $this->dbh
}
}
//Controller/Controller.php
class Controller
{
public $modelConnection;
public function __construct()
{
$this->modelConnection = new Model();
}
}
//View/index.php
$obj = new Controller;
$obj->modelConnection->crudMethod();
?>
Run Code Online (Sandbox Code Playgroud)
看看我的代码,我觉得我完全忽略了这一点.
控制器不提供实际值,我也可以直接实例化Model类.
模型类是否应该被实例化?控制器内部还是外部?或者这完全是不好的做法?我如何改进这种结构以支持MVC范例?
javascript ×3
node.js ×3
amazon-s3 ×1
aws-sdk ×1
inheritance ×1
oop ×1
php ×1
socket.io ×1
sockets ×1
websocket ×1