我正在尝试将 async wait 与 mysql2 和池一起使用,但我认为我做错了。下面是我的代码(正如我所说,我不确定我是否在这里做事)。
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'test',
password: '',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
const promisePool = pool.promise(); // Get a Promise wrapped instance of that pool
app.post('/api/register', (req, res) => {
async function queryDB() {
try {
const addUser = await promisePool.execute(
"INSERT INTO users (company, email, password) VALUES (?,?,?)",
['Ikea', 'Ikea@ikea.com', '123'],
)
const addAnother = await promisePool.execute(
"INSERT INTO users (company, email, password) VALUES (?,?,?)",
['Google', …Run Code Online (Sandbox Code Playgroud) 我正在使用 ApexChart,我想向工具提示添加一些更多信息(悬停时显示)。我已阅读文档,但我真的不明白如何做到这一点。
\n我的问题是我不明白应该在哪里添加额外数据以及如何使其显示在工具提示中?
\n现在我只能在工具提示中看到默认值,即系列名称和“y”值。我想看看:
\n如何将其添加到工具提示中?这是我到目前为止得到的:
\n小提琴: https: //jsfiddle.net/9m0r2ont/1/
\n代码:
\nvar options = {\n chart: {\n height: 380,\n width: "100%",\n type: "scatter",\n },\n series: [\n {\n name: "Series 1",\n data: [\n {\n x: 100,\n y: 50,\n product: \'name\',\n info: \'info\',\n site: \'name\'\n },\n {\n x: 150,\n y: 55,\n product: \'name\',\n info: \'info\',\n site: \'name\'\n }\n ]\n …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个用于在 javascript 中获取的拦截器(更具体地说是 React)。它应该从每次调用的 fetch 中获取结果,如果是 401 错误,则应该向另一个路由发起新的 fetch 调用以获取 cookie(刷新令牌)。然后,应再次尝试原始的提取调用(因为现在用户已登录)。
我已经成功触发新的 fetch 调用并发回每个调用的 cookie,但是我遇到了以下两个问题:
我现在不知道如何在收到刷新令牌后重试 fetch 调用。那可能吗?我找到了 fetch-retry npm ( https://www.npmjs.com/package/fetch-retry ),但不确定如何以及是否可以在拦截器上实现它,当它应该为原始的 fetch 调用完成时。
我似乎在异步等待方面做错了(我认为),因为拦截在返回数据之前没有等待提取调用(原始提取上的状态代码似乎是 401 而不是 200,在我们得到之后它应该是cookie。我还尝试返回拦截器内获取的响应,但返回未定义)。
知道如何解决这个问题吗?有谁做过类似的事情吗?
下面是我的代码:
(function () {
const originalFetch = fetch;
fetch = function() {
return originalFetch.apply(this, arguments).then(function(data) {
if(data.status === 401) {
console.log('not authorized, trying to get refresh cookie..')
const fetchIt = async () => {
let response = await fetch(`/api/token`, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json'
},
}); …Run Code Online (Sandbox Code Playgroud) 这太令人沮丧了..我正在尝试为node.js 安装sequalize。我在本地成功安装了它,但无法全局安装它(我收到权限被拒绝的错误:
\'../lib/node_modules/sequelize-cli/lib/sequelize\').
Run Code Online (Sandbox Code Playgroud)
我实际上并不希望它全局安装,但是当在本地安装它并且应该配置和初始化sequelize模块(通过在终端中输入sequelize init:models&sequelize init:config)时,我收到以下错误:
-bash: sequelize: command not found
Run Code Online (Sandbox Code Playgroud)
因此,我做了功课,发现命令未找到错误可以通过全局安装(-bash:sequelize:命令未找到)来解决,并修复启用全局安装时的错误,我更改了用户访问权限(错误:EACCES:权限被拒绝,访问'/usr/local/lib/node_modules'react),但这并没有达到目的,我仍然被拒绝权限。
所以我的问题是如何在终端中运行sequelize init:models 和sequelize init:config 而不会出现找不到命令的情况?
我已经在这方面花费了数小时和数小时,这是我第一次使用 JWT,真的需要您的一些想法。
现在我将我的令牌存储在单独的 httpOnly cookie 中(我的访问令牌在 15 分钟后过期,并在 7 天后刷新令牌)。
我已经读到存储令牌的最安全方法实际上是使用 cookie 作为刷新令牌和内存中(如在变量中)作为访问令牌。
虽然我知道这是安全的,但我并不真正理解它在实践中是如何工作的。这是否意味着我们必须在每个请求上使用刷新令牌创建一个新的访问令牌?或者有没有办法让它有效并复制到新变量,直到它过期?
我正在使用反应和节点 btw。
在javascript中,等待块代码吗?例如,假设我们有以下代码:
async function queryDB() {
const addUser = await promisePool.execute("INSERT INTO Users (User) VALUES ('username')")
const selectUser = await promisePool.execute("SELECT User FROM Users")
}
Run Code Online (Sandbox Code Playgroud)
“selectUser”是否会等到 addUser 完成后才运行,以便我们可以选择添加的用户?
另外,假设我们在等待之间添加了一些不是承诺的代码,如下所示:
async function queryDB() {
const addUser = await promisePool.execute("INSERT INTO Users (User) VALUES ('username')")
setTimeout(() => console.log('Do something that takes 3 seconds'), 3000);
const selectUser = await promisePool.execute("SELECT User FROM Users")
}
Run Code Online (Sandbox Code Playgroud)
“selectUser”会等待 addUser 而不是 setTimeout 吗?如果是这样,你将如何编写上面的代码让 addUser 先运行,然后 setTimeout 然后 selectUser?
我还想补充一点,我一直在研究和阅读 stackoverflow 和其他资源,但我需要澄清一下。
我试图查看一个 div 类是否包含所有数组项,然后向该 div 添加“显示:块”。
如果我想为每个单独的类添加“显示:块”,我会这样做:
let arrayList = [car, animal, boat]
for(i=0; i<arrayList.length; i++) {
let getClass = document.getElementsByClassName(arrayList[i]);
for(c=0; c<getClass.length; c++) {
getClass[c].style.display ="block";
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何检查 div 的所有类是否都在arrayList. 然后添加“显示:块”到它?
例如,如果我有一个具有结构的 div,<div class="car animal boat">我希望它具有“display:block”,但如果 div 结构是,<div class="car animal">我希望它具有“display:none”。
该数组将是动态的。我怎样才能做到这一点?
javascript ×4
async-await ×2
node.js ×2
access-token ×1
apexcharts ×1
arrays ×1
css ×1
interceptor ×1
jwt ×1
mysql ×1
mysql2 ×1
sequelize.js ×1
terminal ×1
tooltip ×1