我目前正在使用node.js,所以我第一次使用Js超越dom操作。
我遇到了类似下面的代码片段。我无法理解。怎么了?它是一个关键的价值对象吗?匿名function
是否已传递给'new'
?
module.exports = {
'new': function(req, res) {
res.view();
},
/**
* Overrides for the settings in `config/controllers.js`
* (specific to UserController)
*/
_config: {}
};
答案 0 :(得分:2)
正如其他人所说,这最终只是创建一个名为module.exports
的对象,然后为其分配两个属性。一个是另一个名为_config
的对象,另一个是名为new
的函数,需要两个参数。
这是简单的JavaScript解释。
在node.js中,您还会看到一些正在发挥作用的惯例,我将在下面介绍。
一个惯例是module.exports
。
当其他一些代码使用require()
加载此文件时,这个对象将可用。它可以这样工作:
var m = require('yourmodule.js');
m.new(req, res);
另一个约定是参数对:req, res
。
这些通常是表示请求的参数(如http.IncomingMessage
)和响应(如http.ServerResponse
)。
总而言之,这个模块可能正在定义一个Controller,它将接收http请求,并将它们呈现为响应。它目前为new
执行此操作,并且当用户请求类似“http://server.come/user/new”的内容时,可能在其他位置配置了调用此方法的路由。
答案 1 :(得分:1)
看起来像基本的JavaScript。
名为 module 的对象具有名为 exports 的属性,该属性是一个对象。
此对象具有名为 new 的属性,其值为匿名函数。
理论上你可以调用这样的方法:
module.exports.new(someRequest, someResponse);