有人可以向我解释此行的工作原理:https://github.com/sveltejs/realworld/blob/master/src/routes/login/index.svelte#L13
[const response = await post(
auth / login , { email, password });
post
正在从utils.js
调用,这是:
utils.js
export function post(endpoint, data) {
return fetch(endpoint, {
method: 'POST',
credentials: 'include',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}).then(r => r.json());
}
因此函数进入此处,然后获取所提供的端点auth/login
。
这使我感到困惑,因为auth/login
不是端点,它是在auth/login.js
下导出函数的文件。 auth/login.js
中的第二个帖子功能是否会自动调用?我不确定(req, res)
也要传递到哪里,因为我们只是从上方获取此文件,而不传递任何参数。
auth / login.js
import * as api from 'api.js';
export function post(req, res) {
const user = req.body;
api.post('users/login', { user }).then(response => {
if (response.user) req.session.user = response.user;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(response));
});
}
这是在用户中设置Cookie的位置,我的代码当前未在其中设置该用户,并且刷新后会话将丢失。我正在尝试了解如何在Sapper中保持会话。
此行正在调用相对路径:const response =等待帖子(auth/login
,{电子邮件,密码});
因此,fetch正在调用的url类似于:http://yourdomain.com/auth/login
根据文档,当调用以.js结尾的路由时,会发生什么情况,即Sapper在该文件上查找具有HTTP请求方法名称的函数。此处提供更多信息:sapper.svelte.dev/docs#Server_routes