响应路由与URL参数不更新视图

我有一个反应观点/wiki/:artical 。 当我从一个不同的视angular去维基(例如从/到/wiki/some-artiacal )我的观点更新,但是当我从一个维基到另一/wiki/some-artiacal (例如/wiki/some-artiacal到/wiki/some-other-artiacal )页面不会与新的内容。 看来React认为它们是相同的观点,并且不会重新渲染页面。 如果我手动刷新浏览器,文章更新,但是当我点击<Link to='/wiki/some-other-artiacal'></Link>时,我想要刷新。 反应路由器文件: import React from "react"; import ReactDOM from "react-dom"; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; // COMPONENTS import Header from './components/Header'; // VIEWS import HomePage from './views/HomePage'; import WikiPage from './views/WikiPage'; import ProblemTesterPage from './views/ProblemTesterPage'; import NoMatchPage from './views/NoMatchPage'; ReactDOM.render( <Router> <div […]

添加到Node.js express-session的variables在下一个请求中是未定义的

我正在实现一个简单的loginfunction并将数据存储在快速会话中,但无法恢复。 在login函数中的loginDb.js文件中,我将用户ID存储在会话variables中,并且在getLoginStatus函数中,我试图访问userId,但是它的callback是未定义的。 我已经经历了许多与类似问题有关的post,但对我来说没有任何帮助。 不知道我在这里做错了什么。 下面是代码。 server.js var express = require('express'); var pg = require('pg'); var cookieParser = require('cookie-parser'); var bodyparser = require('body-parser'); var session = require('express-session'); var path = require('path'); const port = 3000; const loginroute = require('./Routes/login'); var app=express(); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(session({ secret: 'This is a secret', resave: true, saveUninitialized:true, […]

当使用asynchronous等待,如何指定一个callback?

我正在研究如何在以下方面使用交易: https://node-postgres.com/features/transactions 但在下面的代码示例中: const { Pool } = require('pg') const pool = new Pool() (async () => { // note: we don't try/catch this because if connecting throws an exception // we don't need to dispose of the client (it will be undefined) const client = await pool.connect() try { await client.query('BEGIN') const { rows […]

如果MySQL查询返回1个结果,是否需要指定我想从结果得到密码?

使用的查询只返回1行/结果,所以当我想要获得密码列,我必须写: var hash = results[0].password; 我试过了 var hash = results.password; 但是,然后哈希变得不确定。 router.post('/', function(req, res, next) { var username = req.body.username; var password = req.body.password; db.query('SELECT * FROM user WHERE username = ?', [username], function (error, results, fields) { if (error) throw error; var hash = results[0].password; console.log(hash); }); res.redirect('/'); });

Request-Promise-Native忽略指定的标题

我对Nodejs有点新鲜。 我正在研究一对微服务,我需要一个将数据发布到另一个。 我正在使用request-promise-native库。 我的代码是打电话是这样的: const options = { method: 'POST', uri: url, formData: { command: command, version: version, session_id: sid, aicc_data: data }, headers: { 'content-type' : 'application/x-www-form-urlencoded' } } rp(options) 但是,当我检查请求进入另一台服务器时,我指定的标题不会显示。 headers: { 'content-type': 'multipart/form-data; boundary=————————–395968157759002211606136', host: 'localhost:9000', 'content-length': '513', connection: 'close' } 我究竟做错了什么?

如何模块化JavaScript类(将方法拉出主文件,将方法导入主文件)

是否有可能从JS中的类拉类方法? 原谅我,我是function范式,所以使用React迫使我使用类和this关键字(到目前为止)。 我的一些组件越来越大,我不想要这个。 我无法在Google上find任何有关拉出方法或模块化课程的内容。 有没有一种方法,我可以说“ 从./some_method.js'获取此方法,并使用它,如果它是在这个文件&类中声明 ”没有太多的侵入性的变化? 如果做不到这一点,我假设他们把所有的function都传递给他们。 但是,这感觉很肮脏。 我会感谢一些指导我需要看什么关键字,或者只是如何移动方法,所以我没有2000行文件,需要我20分钟find toggleFullMenu() { this.setState({ menuOpen: !this.state.menuOpen}) } 不用按CTRL + F。 这是我的动力。 我也想知道是否有关于这个与build设者有关的专业技巧。 任何类inheritance范式的警告? 我只是想让方法独立地坐在不同的文件中,但我不知道我在找什么。 我从来没有见过人们在谈论这个。 编辑,我刚刚在MDN中发现: 子类与扩展 extends关键字用于类声明或类expression式中,以创build另一个类的子类。 来源: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes class Dog extends Animal { speak() { console.log(this.name + ' barks.'); } } 这是我需要的吗? 我将如何去拉动一堆扩展? 我不想要一个小孩课,听起来不像我所描述的那样。

契约:在最终确定之前或之后,向经纪公司发布契约

在我的消费者testing结束时,我需要采取两个步骤: 最后确定模拟服务器 将该协议发布给经纪人。 起初,我在出版之前是这样发表的: var opts = { //broker info } pact_node.publishPacts(opts).then(() => { provider.finalize() }).catch(() => { console.error("Could not publish pact!") provider.finalize() }) 我意识到这一点是finalize()是pact文件写入的地方。 所以如果我按照这个顺序做事情,那么第一次运行testing时,什么都不会发布,随后的每一次我都会发布上一次运行的合同版本。 所以我试着颠倒了顺序,先完成模拟服务器,然后发布: provider.finalize().then(() => { console.log("Publishing pact to broker") pact_node.publishPacts(opts) }).catch(() => { console.error("Could not finalize provider!") }) 但是就此而言, then和catch区块都不会被执行。 我没有得到任何消息打印到控制台。 到底是怎么回事? 我应该在哪些顺序中调用这些函数,为什么第二个顺序不起作用?

toContain()的实际用途是什么?

大家都知道期待换成笑话。 预期的一些性质也会改变。 其中之一是被称为包括的内容。 你可以在这里find它: https : //github.com/skovhus/jest-codemods/blob/master/src/transformers/expect.js 我的问题是,当我试图使用toContain为了检查一个对象是否与另一个对象匹配,它显示我错误。 但是早些时候以包括它只是一个行代码。 所以作为替代包括我发现它不同,不完全相同。 这个数组工作正常。 expect([2,3,4]).toContain(4); 但是当我用对象去,这个错误出现了 expect({ name : 'Adil', age : 23 }).toContain({ age : 23 }); 这是错误 Error: expect(object).toContain(value) Expected object: {"age": 23, "name": "Adil"} To contain value: {"age": 23}

使用嘲笑模拟fs模块

在我的nodejs服务器上,我想嘲笑我的testing与摩卡。 我最终使用嘲笑,但我真的误解了一个概念。 在我的testing中(我也使用Typescript): // mock for fs var fsMock = { readdir: (path: string) => { return { err: undefined, files: [] } }, writeFile: (path: string, content: string, encoding: string) => { return { err: undefined } }, readFileSync: (path: string, encoding: string) => { return "lol" } }; Mockery.registerMock('fs', fsMock); beforeEach((done) => { […]

Typescript Interface vs

我试图给我的mongoose文件分配一个文章数组,但似乎Typescript不喜欢,我不知道为什么它显示这个警告/错误,它是不可分配的。 我的mongoose模式和接口(简体): interface Profile { username: string, articles: [Article] } interface Article { index: number, name: string, } // Mongoose model export interface IProfile extends Profile, Document { } const Article = new Schema({ index: { type: Number, required: true }, name: { type: String, required: true }, }, { _id: false }) const Profile […]