小编Chr*_*ing的帖子

在Visual Studio调试器中检查Rust变量时,为什么会得到“标识符未定义”或“不可用”的信息?

我已经设置了Visual Studio Code调试器并运行以下程序。

pub fn main() {
    let mut chars = "test".chars();
    match chars.next() {
        Some(c) => {
            println!("What is the value of c, here?");
            if c == 'c' {
                println!("c");
            }
        }
        None => {}
    }
}
Run Code Online (Sandbox Code Playgroud)

如果在第6行设置一个断点,然后在“变量”和“监视”窗格中查找,则c不会求值,而是传递以下消息:identifier 'c' is undefined在Windows上<not available>使用cppvsdbg,在Linux上使用lldb。我已经确认,对于当前稳定的编译器版本,这会在Linux和Windows版本上发生。

我也将以下内容添加到Cargo.toml无济于事:

[profile.dev]
opt-level = 0
debug = true
Run Code Online (Sandbox Code Playgroud)

作为参考,这是VS Code编译器所需的我的launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(Windows) Launch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/test.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [], …
Run Code Online (Sandbox Code Playgroud)

debugging rust visual-studio-code

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

将 Node.js 对象设置为从文件读取的数据

我想从文件中读取数据并将其添加到存储在内存中的对象中。文件 text.txt 中的数据大致如下所示:

One: {title: 'One' ,
contributor: 'Fred',
summary: 'blah' ,
comments: 'words' },

Two: {title: 'Two' ,
contributor: 'Chris' ,
summary: 'blah blah i'm a blah' ,
comments: '' },
Run Code Online (Sandbox Code Playgroud)

我试图将其设置为一个空对象,如下所示:

var fs = require('fs');
var text = Object.create(null);
fs.readFile("./public/text.txt", "utf-8", function(error, data) {
  text = { data };
});
Run Code Online (Sandbox Code Playgroud)

然而,当我登录text到控制台时,它看起来像这样:

{ data: 'One: {title: \'One\' ,\ncontributor: \'Fred\',\nsummary: \'blah\' ,\ncomments: \'words\' },\n    \nTwo: {title: \'Two\' ,\ncontributor: \'Chris\' ,\nsummary: \'blah blah i\'m a blah\' ,\ncomments: \'\' },\n\n' …
Run Code Online (Sandbox Code Playgroud)

javascript object fs readfile node.js

5
推荐指数
1
解决办法
2894
查看次数

React prop的本地副本是只读的

假设我有两个组件.父对象作为属性传递,然后将其复制到本地数据存储中.它具有更新此本地存储的功能,该存储将传递给子级.这是我的父组件:

const Parent = ({stuff}) => {
  const store = {
    stuff: Object.assign({}, stuff);
  }

  const updateStuff = (thing, property) => store.stuff[thing].property = thing;

  return <Child stuff={stuff} updateStuff={updateStuff} />
}
Run Code Online (Sandbox Code Playgroud)

子组件具有类似的结构-它使副本stuff,和其变异副本stuff<input>onChange.然后它将自己更新的东西副本传递给updateStuff它收到的函数,以便改变父级的道具副本.这是孩子.

const Child = ({stuff, updateStuff}) => {
  const stuff = {
    thing1: Object.assign({}, stuff.thing1),
    thing2: Object.assign({}, stuff.thing2)
  }

  const setProp = event => {
    const update = event.target.value;

    stuff.thing1.prop = update;
    updateStuff(thing1, stuff.thing1.prop)
  }

  return (
    <div>
      <input id="thing1" …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

5
推荐指数
1
解决办法
9116
查看次数

从 .ps1 脚本设置环境变量

我目前正在开发一个 Node.js 项目,并且希望自动设置环境变量。我写了一个脚本(set_env.ps1),看起来像这样:

Write-Host "Setting environment variables...";
$env:CLIENT_KEY="xxxxxxxxxxxxxxxx";
$env:CLIENT_SECRET="xxxxxxxxxxxxx";
[etc]
Run Code Online (Sandbox Code Playgroud)

我从一些 npm 脚本中调用它:

"scripts": {
  "install:windows": "powershell ./set_env.ps1",
  "start": "npm run install:windows && node index",
  "monitor": "npm run install:windows && nodemon index"
},
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。我可以在命令行中手动输入相同的命令,一次一个,并设置环境变量。不过,只需运行脚本,“Settingenvironmentvariables...”就会打印到 powershell 提示符中,但不会设置任何变量。

互联网上的所有内容似乎都想从提示符中执行此操作,一次一个环境变量。对于一长串环境变量来说,这是极其乏味的,而且 Webstorm 中嵌入的 Powershell 提示符有不接受粘贴字符串的习惯。

powershell npm

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

Express.js中Route Params的正则表达式

根据各种文档和博客,以及这个问题和其他问题,我知道可以使用正则表达式验证路由参数.然而,这让我找了大约一个半小时:

app.get('/api/:url(/^http:\/\/(.+?)\.(.+?)$/)', (req, res) => {
  // do stuff with req.params.url
});
Run Code Online (Sandbox Code Playgroud)

每当我在本地运行服务器并输入时localhost://8000/api/http://www.google.com,响应就是Cannot GET /new/http://www.google.com

我知道正则表达式做了我想要它做的事情,因为:

/^http:\/\/(.+?)\.(.+?)$/.test('http://www.google.com');
Run Code Online (Sandbox Code Playgroud)

...返回true.

我也试过改变路线字符串看起来像......

'/api/:url(^http:\/\/(.+?)\.(.+?)$)'

'/api/:url(http:\/\/(.+?)\.(.+?))'

'/api/:url/^http:\/\/(.+?)\.(.+?)$/'
Run Code Online (Sandbox Code Playgroud)

还有其他几种格式看起来像Stack Overflow线程和博客中给出的示例(Express文档绝对没有在第一个路径参数之外使用的正则表达式的示例).也许有一些我不知道的格式限制,或者Express中对RegExp支持的限制?如果文档说什么的话会很棒.

我感谢任何帮助.

node.js express

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