小编Dan*_*hts的帖子

具有 Express 会话问题的节点

我使用以下有效的代码,但是在几次成功调用(5-10)之后,我们有时会收到内部服务器错误:

req.session["oidc:accounts.rvm.com"] is undefined

我已经尝试了所有的latest开源版本。

Error: did not find expected authorization request details in session, req.session["oidc:accounts.rvm.com"] is undefined
at /opt/node_app/app/node_modules/openid-client/lib/passport_strategy.js:125:13
at OpenIDConnectStrategy.authenticate (/opt/node_app/app/node_modules/openid-client/lib/passport_strategy.js:173:5)
at attempt (/opt/node_app/app/node_modules/passport/lib/middleware/authenticate.js:366:16)
at authenticate (/opt/node_app/app/node_modules/passport/lib/middleware/authenticate.js:367:7)
at /opt/node_app/app/src/logon.js:92:7 *******
at Layer.handle [as handle_request] (/opt/node_app/app/node_modules/express/lib/router/layer.js:95:5)
at next (/opt/node_app/app/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/opt/node_app/app/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/opt/node_app/app/node_modules/express/lib/router/layer.js:95:5)
at /opt/node_app/app/node_modules/express/lib/router/index.js:281:22
Run Code Online (Sandbox Code Playgroud)

我的堆栈代码是:

at /opt/node_app/app/src/logon.js:92:7
Run Code Online (Sandbox Code Playgroud)

这是代码的结尾:

})(req, res, next);   // here is line 92 but not sure if it's related 
Run Code Online (Sandbox Code Playgroud)

这是完整的代码(我通过app它只是一个快速服务器):

索引.js

const express = require('express'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js async-await openid-connect passport.js

12
推荐指数
1
解决办法
2271
查看次数

无法再执行任何 go 命令

在此之前,我正在尝试使用dep来管理我的golang代码依赖项。我现在发现我无法使用go执行任何命令,即使我尝试使用brew by卸载它brew uninstall go并再次执行brew install go

如果我正在做go env它会显示如下:

$ go env
go: cannot find GOROOT directory: /usr/local/cellar/go/1.13.1/libexec

$ ls /usr/local/Cellar/go/1.13.8/libexec/
CONTRIBUTING.md SECURITY.md bin     lib     robots.txt
CONTRIBUTORS    VERSION     doc     misc        src
PATENTS     api     favicon.ico pkg     test

$ go version
go: cannot find GOROOT directory: /usr/local/cellar/go/1.13.1/libexec

$ go build
go: cannot find GOROOT directory: /usr/local/cellar/go/1.13.1/libexec

$ echo $GOPATH
/Users/mymac/go

$ echo $GOROOT

$
Run Code Online (Sandbox Code Playgroud)

我应该做什么和检查?

homebrew command-line-interface go godeps gopath

11
推荐指数
2
解决办法
2万
查看次数

在 Vue.js 3 setup() 中访问 this.$root

在 Vue 2 中,您可以访问钩子this.$root内部created。在 Vue 3 中,原本应该进入createdhook 的所有东西现在都进入了setup().

setup()我们没有访问权限的情况下this,我们如何访问根实例上的任何内容?

比如说,我在根实例上设置了一个属性:

const app = createApp(App).mount('#app');

app.$appName = 'Vue3';
Run Code Online (Sandbox Code Playgroud)

我可以thismounted()with访问this.$root.$appName,我怎样才能做到这一点setup()


更新

如果我可以访问import它:

import app from '@/main';
...
setup() {
    console.log(app.$appName) // Vue3
Run Code Online (Sandbox Code Playgroud)

但是,如果我必须为每个文件都这样做,这很麻烦。


更新 2

另一种解决方法是在provide()内部使用App.vue,然后inject()在任何其他组件中使用:

setup() {
    provide('$appName', 'Vue3')
Run Code Online (Sandbox Code Playgroud)
setup() {
    inject('$appName') // Vue3
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component vuejs3 vue-composition-api

9
推荐指数
3
解决办法
1万
查看次数

未捕获的错误:“目标”是必需选项 - Svelte

我正在为 Svelte 构建一个 NPM 包。通过这个包,我导出了几个简单的组件:

import SLink from './SLink.svelte';
import SView from './SView.svelte';

export { SLink, SView };
Run Code Online (Sandbox Code Playgroud)

这是在使用汇总将它们捆绑到缩小版本之前。

汇总配置:

module.exports = {
    input: 'src/router/index.ts',
    output: {
        file: pkg.main,
        format: 'umd',
        name: 'Router',
        sourcemap: true,
    },
    plugins: [
        svelte({
            format: 'umd',
            preprocess: sveltePreprocess(),
        }),
        resolve(),
        typescript(),
        terser(),
    ],
};
Run Code Online (Sandbox Code Playgroud)

package.json(减去不必要的信息):

{
    "name": "svelte-dk-router",
    "version": "0.1.29",
    "main": "dist/router.umd.min.js",
    "scripts": {
        "lib": "rollup -c lib.config.js",
    },
    "peerDependencies": {
        "svelte": "^3.0.0"
    },
    "files": [
        "dist/router.umd.min.js"
    ],
}
Run Code Online (Sandbox Code Playgroud)

当我发布包并测试它时,出现以下错误:

Uncaught Error: 'target' is …
Run Code Online (Sandbox Code Playgroud)

npm rollupjs svelte

9
推荐指数
2
解决办法
4892
查看次数

将多个参数传递给 Vuex 操作

我的 Vue 组件中有以下方法

loadMaintenances (query = {}) {
  this.getContractorMaintenances(this.urlWithPage, query).then((response) => {
    this.lastPage = response.data.meta.last_page
  })
}
Run Code Online (Sandbox Code Playgroud)

我想将参数传递(this.urlWithPage, query)给我的 Vuex 操作,如下所示:

actions:{
  async getContractorMaintenances ({ commit }, url, query) {
    console.log(url);
    console.log(query);
    let response = await axios.get(url)

    commit('PUSH_CONTRACTOR_MAINTENANCES', response.data.data)

    return response
  },
}
Run Code Online (Sandbox Code Playgroud)

问题是第一个参数url返回一个值,但第二个参数query返回undefined

我的突变如下:

mutations: {
  PUSH_CONTRACTOR_MAINTENANCES (state, data) {
    state.contractor_maintenances.push(...data)
  },
}
Run Code Online (Sandbox Code Playgroud)

如何从第二个参数获取值?

javascript vue.js vuex vuejs2

9
推荐指数
1
解决办法
8174
查看次数

将 Vue.js 与 vue-socket-io 结合使用

我正在尝试将 vue-socket-io 与 Vue 一起使用。

我可以毫无问题地从客户端向服务器发送消息。但是,从服务器到 Vue 应用程序,我什么也收不到。

我究竟做错了什么?

main.js

import Vue from "vue";
import App from "./App.vue";
import router from "./router";

// socket io
import * as io from "socket.io-client";
import VueSocketIO from "vue-socket.io";

Vue.use(
  new VueSocketIO({
    debug: true,
    connection: io('http://localhost:3000'), // options object is Optional
  })
);

Vue.config.productionTip = false;

new Vue({
  router,
  store,
  vuetify,
  render: (h) => h(App),
}).$mount("#app");
Run Code Online (Sandbox Code Playgroud)

App.vue

<template>
  <v-app>
    <div>Test</div>
  </v-app>
</template>

<script>
export default {
  name: "App",
  mounted() {
    this.$socket.on("user-connected", (data) …
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js vue.js

6
推荐指数
2
解决办法
9600
查看次数

如何在 Vanilla JS 中将 URL 参数与输入字段绑定?

在这里运行一个示例,其中输入由?amount=123

const query = new URL(location).searchParams
const amount = parseFloat(query.get('amount'))

console.log("amount", amount)
document.getElementById('amount').value = amount
Run Code Online (Sandbox Code Playgroud)
<label>
  Amount
  <input id="amount" type="number" name="amount">
</label>
Run Code Online (Sandbox Code Playgroud)

抱歉,在上面或 JS fiddle 上运行代码片段似乎不适用于 URL 参数。

如果输入更改,我希望 URL 也更新,并使用新值。我如何在 vanilla JS 中实现这一目标?

html javascript url-parameters

6
推荐指数
1
解决办法
325
查看次数

tailwindcss 中具有不透明度的背景图像

我正在尝试重新创建一个从 vanilla CSS 到 tailwindcss 的项目。但我尝试了很多选择,但都失败了。

这是 CSS 代码:

header {
    background: linear-gradient(rgba(135, 80, 156, 0.9), rgba(135, 80, 156, 0.9)), url(img/hero-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    position: relative;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以将此代码转换为等效的 tailwindcss 代码吗?

css tailwind-css

6
推荐指数
1
解决办法
2万
查看次数

我应该在“package.json”的“dependencies”字段中复制“peerDependencies”吗?

为了实验,我下载了@typescript-eslint/eslint-plugin的源代码。这个包有两个对等依赖项:

{
  "peerDependencies": {
    "@typescript-eslint/parser": "^4.0.0",
    "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
  },
  "dependencies": {
    "@typescript-eslint/experimental-utils": "4.11.1",
    "@typescript-eslint/scope-manager": "4.11.1",
    "debug": "^4.1.1",
    "functional-red-black-tree": "^1.0.1",
    "regexpp": "^3.0.0",
    "semver": "^7.3.2",
    "tsutils": "^3.17.1"
  },
}
Run Code Online (Sandbox Code Playgroud)

如果我npm list在安装所有依赖项后运行,我会得到:

npm ERR! peer dep missing: eslint@^5.0.0 || ^6.0.0 || ^7.0.0, required by @typescript-eslint/eslint-plugin@4.11.1
npm ERR! peer dep missing: eslint@*, required by @typescript-eslint/experimental-utils@4.11.1
Run Code Online (Sandbox Code Playgroud)

这是否意味着npm想要:

npm ERR! peer dep missing: eslint@^5.0.0 || ^6.0.0 || ^7.0.0, required by @typescript-eslint/eslint-plugin@4.11.1
npm ERR! peer dep missing: …
Run Code Online (Sandbox Code Playgroud)

npm package.json

6
推荐指数
2
解决办法
1446
查看次数

在 Mapboxgl.js 中的弹出窗口中添加按钮

如何向弹出窗口添加按钮并向onClick功能添加按钮?

.setPopup(new mapboxgl.Popup({ offset: 25 })
.setHTML('<button onclick=' + { this.handlePop } + '> Button</button>'))
.addTo(map);
Run Code Online (Sandbox Code Playgroud)

这是行不通的。

javascript mapbox-gl-js

5
推荐指数
2
解决办法
6202
查看次数