我有一个 React 16 单页应用程序(使用 创建create-react-app),它被编译到build我的 Sails 1.0 应用程序的目录中,我已更新.sailsrc为将 Sails 指向该目录以加载静态资产,当我加载 localhost:1337 时,一切工作完美:React 应用程序已加载,并且它从我的 Sails 应用程序的端点提取数据。
问题是我正在使用 React Router(使用常规 URL 路径,而不是 HashRouter)以及主 index.html 页面之外的任何内容点击 React Router,而不是从 Sails 获取 404。在过去的几年里,我遇到了很多关于这个问题的答案:
\n\n我不想重定向到视图或控制器,我只想发送静态build/index.html任何 404 响应的静态文件。至于该列表中的最后一个问题,我无法弄清楚如何将其转化为我想做的事情。
我已经能够通过添加来做到这一点api/responses/notFound.js能够通过添加以下内容
const fs = require(\'fs\');\n\nconst content = fs.readFileSync(\'build/index.html\');\n\nmodule.exports = function notFound () {\n return this.res.send(content.toString());\n};\n …Run Code Online (Sandbox Code Playgroud) 预先声明,我对 TypeScript 相当陌生,所以这可能是一个愚蠢的问题!
我正在尝试对我的 Express/Postgres 应用程序使用与node-postgres 文档中所述相同的设置中所述相同的设置,其中我有一个连接到 PostgreSQL 服务器的模块,并且包含在我需要访问它的任何地方,但我TypeScript 类型遇到一些问题。
在这个例子中,我简化了一切以完全删除 Express。如果我这样做,一切都会正常,并且 TypeScript 的编译器也很高兴:
import { Pool } from 'pg';
const pool = new Pool({
host: process.env.PG_HOST,
port: parseInt(process.env.PG_PORT),
user: process.env.PG_USER,
password: process.env.PG_PASSWORD,
database: process.env.PG_DATABASE,
});
(async function getRows() {
const result = await pool.query('SELECT id, message, created FROM media');
interface dbObject {
id: number,
message: string,
created: Date
}
await result.rows.map((row: dbObject) => {
console.log(row.id);
console.log(row.message);
console.log(row.created);
})
})()
Run Code Online (Sandbox Code Playgroud)
但是,如果我将这些pg函数移至其自己的单独db.ts模块中:
import { Pool …Run Code Online (Sandbox Code Playgroud) 我通过HTTPS运行Apache和hgwebdir.cgi(带有自签名证书),我可以通过浏览器查看存储库并在本地克隆它.我不知道它是否有任何影响,但我正在重写URL以使它们更漂亮:
$ cat .htaccess
Options +ExecCGI
RewriteEngine On
RewriteBase /public
RewriteRule ^$ hgwebdir.cgi [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) hgwebdir.cgi/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行hg push来发送更改时,我得到了这个:
$ hg push
pushing to https://<repository>
searching for changes
http authorization required
realm: Mercurial
user: virtualwolf
password:
remote: ssl required
Run Code Online (Sandbox Code Playgroud)
Apache设置为将HTTP上的所有请求重定向到HTTPS.远程服务器运行CentOS,Apache 2.2.3和Mercurial 1.3.1(都通过安装yum).
我已经做了很多关于这个问题的搜索,最接近我得到答案的是这个,但它指的是NGINX而不是Apache.
谢谢!
我有一个现有的应用程序(我的网站),正在整理一些代码,整理后的想法与此处的Mojo::Pg示例相同,只是使用单独的模型和控制器文件来保持定义。我的网站访问Flickr和Last.fm的API,并且在中定义了一个帮助器:Site::Helpers
$app->helper(
get_base_rest_url => sub {
my ( $self, $config ) = @_;
sswitch ( $config ) {
case 'photos': {
my $base_url = 'https://api.flickr.com/services/rest/';
my $user_id = '7281432@N05';
my $api_key = $self->app->config->{ 'api_token' }{ 'flickr' };
my $url =
"$base_url"
. "?user_id=$user_id"
. "&api_key=$api_key"
. "&per_page=" . $self->session->{ per_page }
. '&format=json'
. '&nojsoncallback=1';
return $url;
}
case 'music': {
my $base_url = 'https://ws.audioscrobbler.com/2.0/';
my $username = 'virtualwolf';
my $api_key = $self->app->config->{ 'api_token' }{ …Run Code Online (Sandbox Code Playgroud) 我正在整理我的 Mojolicious 测试并为它们指定适当的描述性名称。举个例子:
$t->get_ok( '/api/ninjablock', 'Run a GET against /api/ninjablock with no credentials' )
->status_is( 403, ' and it has correctly returned a 403' );
Run Code Online (Sandbox Code Playgroud)
然而,测试输出如下所示:
ok 1 - GET /api/ninjablock
ok 2 - and it has correctly returned a 403
Run Code Online (Sandbox Code Playgroud)
我认为我遗漏了一些明显的东西,但是如何使第一个测试显示GET /api/ninjablock名称以外的东西?
我是Sails.js的新手,我正在尝试使用EJS的视图助手(目前主要用于link_to).我已经看到它没有开箱即用的引用,但我还没有看到任何关于如何配置Sails.js以使用视图助手的noob-friendy描述.目前,我已经生成了一个完全简单的应用程序,sails new <name>而不是其他.
谢谢!
我有一个全新的 Debian 9,带有 Docker 18.09(从官方 Docker 存储库安装)和 Postgres 9.6。我已编辑/etc/postgresql/9.6/main/postgresql.conf设置listen_addresses参数:
listen_addresses = '127.0.0.1,172.17.0.1'
Run Code Online (Sandbox Code Playgroud)
进行更改并重新启动 Postgres 后,我的 Docker 容器可以毫无问题地连接到 172.17.0.1 的 Postgres。当我重新启动整个操作系统时,问题就出现了,Postgres 将不会侦听 172.17.0.1,直到我重新启动 Postgres 本身。我已经交换了地址的顺序postgresql.conf,但没有效果,running show listen_addresses;inpsql 表示它正在侦听我指定的两个端口,但sudo netstat -na显示它仅侦听 127.0.0.1:
$ sudo netstat -na
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
重新启动 Postgres ( …
mojolicious ×2
perl ×2
sails.js ×2
apache ×1
docker ×1
ejs ×1
mercurial ×1
node.js ×1
postgresql ×1
ssl ×1
testing ×1
typescript ×1