我是相当新的JS,尤其是节点和快递。我正在学习一些关于如何构建API的教程,同时学习JS的特殊功能,如let/const/var、箭头函数等。
在许多教程中,我看到了如下内容:
somecode.then((result) => {someothercode})
例如,“somecode”是一个get请求
“result”是返回值的名称还是jsdeveloper使用的约定?我的意思是,这个例子有效吗?
somecode.then((foo) => {someothercode})
同样对于req、res变量,这意味着什么?
app.get("/users/:userId", [
usersController.getById
]);
下面是getById函数(再次使用“结果”):
exports.getById = (req, res) => {
userModel.findById(req.params.userId).then((result) => {
res.status(200).send(result);
});
};
控制器needs(req,res)中定义的getById方法是否意味着,当我像上面的代码一样调用它时,req和res参数被隐式使用?
它还需要一个参数:
req.params.userId
哪个在路由的url中,它如何传递到另一个文件?我有一条路线。使用控制器的js文件。使用模型的js文件。js。参数如何从路由到控制器?
如果我把参数的名字改了就不行了,对吗?例如:
req.params.id
很抱歉发了这么长的帖子,我正在努力理解JS逻辑,以养成一些好习惯并编写干净的代码。
谢谢!
看起来您正在努力理解回调函数。请考虑下面的代码,然后打开您正在使用的包的源代码。看起来您正在使用express。js
function something(callback) {
var x = 5;
var y = 'anything';
callback(x, y);
}
something(function(req, res) {
console.log(req);
console.log(res);
});
将创建something函数,并在该函数范围内使用任何类型创建变量x和y。然后,当我们调用或使用某个函数时,我们将函数作为变量传递,该变量作为变量回调
传递,然后可以使用它,因为它是一个函数,所以我们使用x和y调用回调
,x和y可以是任何值,并且有效,我以req
和res
的形式传回一个数字和一个字符串。
“结果”是返回值的名称还是JS开发人员使用的约定?
结果
是您正在创建的新变量的名称,该变量表示从Promise
分辨率传入的值。是的,您的foo
示例将起作用。
(请求、回复)=
function getById(req, res) {...}
req
和res
只是表示将传递给此函数的值。它们可以很容易地被称为(foo,bar)
。
“result”是返回值的名称还是jsdeveloper使用的约定?我的意思是,这个例子有效吗?
根据我的经验,是的-经常使用result
。通常你会看到像值
,响应
,但最终它可以是你定义的任何东西。我建议您遵守约定,如果您是从了解NodeJS异步操作开始的,还可以查看MDN Promise教程。
同样对于req、res变量,这意味着什么?
app.get("/users/:userId", [
usersController.getById
]);
这是一个中间件链。有关更多信息,请查看Express docs。
控制器needs(req,res)中定义的getById方法是否意味着,当我像上面的代码一样调用它时,req和res参数被隐式使用?它还需要一个参数:
req.params.userId
哪一个在url中?如果我正确更改参数名称,它将不起作用?例如:
req.params.id
是的,这是使用命名参数。如果没有完整的路由器代码,很难知道getById
方法如何链接到定义的路由。快递路由留档可能是一个好的开始。
问题内容: 在以下Express函数中: 什么是和?它们代表什么,它们是什么意思,它们是做什么的? 谢谢! 问题答案: 是一个对象,其中包含有关引发事件的HTTP请求的信息。作为对的响应,您可以用于发送回所需的HTTP响应。 这些参数可以命名为任何东西。您可以将代码更改为以下内容: 编辑: 说您有这种方法: 该请求将是一个具有以下属性的对象(仅举几例): ,这将是触发此特定操作的时间 ,在这种情况
类型: Function 参数: Request Response 返回: Promise 你可以通过 nuxt.render 函数,把 Nuxt.js 变成你 Node.js 服务端的中间件。 例如,结合 Express.js 使用: const { Nuxt, Builder } = require('nuxt') const app = require('express')() const
是否可以使用等待与参数?例如: 即使是这样,似乎也不是最好的主意。以前有人这样做过吗?
问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您
NodeJS V.6.11.1(谷歌云功能) 谢了! Update:我希望只有当promise没有错误地解析(即到达)时才从这个参数函数返回数据,因此只有在用户创建时才应用事务。
函数执行时间过长。尝试使用await异步函数,但没有效果。返回未定义,因为不等待。 我有我的index.js: 和我的signupapi.js: 这是运行index.js并调用时的节点输出: 我当前在DB中有37个具有相同数据的条目,因此返回37。 但这是最后执行的,并且出现在控制台的底部,而它应该出现在顶部。