小编cit*_*vin的帖子

React & nginx 路由到子目录

刚开始使用 React。我创建了一个应用程序,create-react-app它应该运行一段sub-directory时间,同时对不同的路径进行 API 调用。

反应应用程序:

服务器上的位置: /var/www/myapp/build

端点: https://foo.example.com/analytics

数据 API 端点: https://foo.example.com/api/data

Nginx 设置

    location /analytics {
           root /var/www/myapp/build;
           try_files $uri /index.html;
    }
Run Code Online (Sandbox Code Playgroud)

"homepage":"https://foo.example.com/analytics"在客户端的 中设置时package.json,所有资源路径似乎都是正确的(即https://foo.example.com/analytics/static/...),但是在检查网络.../api/data时,我的浏览器的网络检查器中没有显示请求,并且应用程序没有正确生成。

App's API call(fetch('https://foo.example.com/api/data')而不是fetch('/api/data')) 中使用绝对路径似乎也无济于事。

而不是当我设置"homepage":"."package.json,改变它的Nginx的配置担任服务器的根目录,应用程序的作品反应build目录。

server {
        root /var/www/myapp/build;
}
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,该应用程序也可以在 下使用https://foo.example.com,这是我不想要的。

我强烈怀疑这与路由有关,但无法弄清楚如何解决它。所以任何帮助将不胜感激!

--- 编辑/解决方案 ---

我怀疑这是最直接的解决方案,但以下设置对我有用:

反应应用

package.json"homepage":"./analytics"运行前设置npm run build

Nginx 配置:

    location =  /analytics …
Run Code Online (Sandbox Code Playgroud)

nginx reactjs

12
推荐指数
2
解决办法
9036
查看次数

Nodejs postgres pg语法错误

正如标题所示,我在使用时遇到语法错误node-postgres。代码如下所示

const {Pool, Client} = require('pg')
const pool = new Pool({
  user: '<user>',
  host: '<host>',
  database: '<database>',
  password: '<pw>',
  port: <port>
})

let query = `SELECT * FROM user JOIN notifications ON user.user_id = notifications.user_id WHERE user_id=$1`

let values = ["123"]

pool.query(query, values)
  .then(() => { /* do something */} )
  .catch((err) => { console.log(err)} )
Run Code Online (Sandbox Code Playgroud)

根据此查询,我收到以下消息的语法错误

syntax error at or near "."
Run Code Online (Sandbox Code Playgroud)

由于相同的查询在 pgAdmin 中运行良好,我的猜测是它是特定于模块的,但我还没有弄清楚问题是什么。

非常感谢任何帮助!

编辑:添加了缺失的括号,感谢 Sreeragh AR

postgresql node.js node-postgres

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

如何使用 request-promise-native 设置原始正文

request-promise-native在 node.js 上使用模块。我正在调用的 API 需要标头中的密钥以及Content-Type: Application/json. 使用 postman 进行测试时,我必须使用 Body > raw 来传递必要的参数。这工作得很好。

但是,当我对请求库进行相同尝试时,正文没有正确提交。这是我尝试过的:

const request = require('request-promise-native')

let options = {
    method: 'POST',
    uri: 'https://api.com',
    headers: {
        'X-Api-Key': <key>,
        'Content-Type': 'Application/json'
    }
}

options.body = {
    key1: 'value1',
    key2: 'value2'
}

// and since the above didn't work also this:

options.form = {
    key1: 'value1',
    key2: 'value2'
}


request(options)
   .then(function(res){ /* do something */}
Run Code Online (Sandbox Code Playgroud)

我确实得到了回应,但不是基于身体参数。如何复制“原始”身体?

node.js request-promise

0
推荐指数
1
解决办法
7942
查看次数