小编dvs*_*kup的帖子

VS代码:使用Express帮助调试angular 2

一直试图在Visual Studio Code中设置调试器以针对我的打字稿运行,但是现在已经有一段时间了。首先,这是我的项目结构:

????.vscode
????dist
?   ????client
?   ?   ????app
?   ?       ????about
?   ?       ????home
?   ?       ????login
?   ?       ????_css
?   ?       ????_guards
?   ?       ????_helpers
?   ?       ????_models
?   ?       ????_services
?   ????server
?       ????routes
????src
    ????client
    ?   ????app
    ?       ????about
    ?       ????home
    ?       ????login
    ?       ????_css
    ?       ????_guards
    ?       ????_helpers
    ?       ????_models
    ?       ????_services
    ????server
        ????routes
Run Code Online (Sandbox Code Playgroud)

因此,基本上,我正在运行gulp,并编译打字稿> javascript,并将所有资源(html,css,图像等)移到“ dist”目录中。“客户端”目录是Angular2的所有内容,而“服务器”目录是运行我的Express服务器的内容。

我的快递服务器为“客户端”目录提供服务,看来工作正常。本质上,整个应用程序运行良好...我可以调用Express中内置的RESTful端点,也可以导航到客户端目录根目录中的“ index.html”。Angular模块可以很好地加载所有东西。

无论如何,问题是我希望能够从Visual Studio代码中调试我所有的角度打字稿文件。这是我当前的启动配置:

{
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Server",
      "program": "${workspaceRoot}/dist/server/startup.js",
      "sourceMaps": …
Run Code Online (Sandbox Code Playgroud)

node.js express typescript visual-studio-code angular

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

PostgreSQL多值upserts

是否有可能在PostgreSQL中执行多值upsert?我知道存在多值插入,如果违反了密钥则执行更新的"ON CONFLICT"关键字......但是是否可以将两者结合在一起?像这样......

INSERT INTO table1(col1, col2) VALUES (1, 'foo'), (2,'bar'), (3,'baz')
ON CONFLICT ON CONSTRAINT theConstraint DO
UPDATE SET (col2) = ('foo'), ('bar'), ('baz')
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了这个问题并且找不到任何关于它的信息.

我有一个使用pg-promise的应用程序,我正在进行批处理.它可以工作,但它的速度非常慢(每隔5秒左右就像50行一样......).我想如果我可以取消批处理,而是正确构建这个多值upsert查询,它可以提高性能.

编辑:嗯......我只是自己尝试过,不,它不起作用.除非我做错了.所以现在我想我的问题已经改变了,实现这样的事情的好方法是什么?

postgresql node.js pg-promise

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

Node.js、express 和对象实例化内部/外部路由端点

我有一个关于对象实例化的问题。现在我已经设置了一个相当大的应用程序,并在后端实现了 RESTful 端点。

我想知道对象实例化的“最佳”方式是什么,以及垃圾收集器如何受到我所做的影响。

以下面为例:

const MyClass = require('../controllers/myClassController');
const router = require('express').Router();

router.get('/', (req, res) => {
    console.log('GET request at api/someEndPoint');
    
    const myClass = new MyClass();
    myClass.doSomePromise()
        .then(() => {
            res.end();
        })
        .catch((err) => {
            res.status(500).end();
        });
});
Run Code Online (Sandbox Code Playgroud)

这里,一个对象在路由路径实现内部实例化。

现在,以此为例:

const MyClass = require('../controllers/myClassController');
const router = require('express').Router();

const myClass = new MyClass();

router.get('/', (req, res) => {
    console.log('GET request at api/someEndPoint');
    
    myClass.doSomePromise()
        .then(() => {
            res.end();
        })
        .catch((err) => {
            res.status(500).end();
        });
});
Run Code Online (Sandbox Code Playgroud)

这里,该对象是在路由路径实现之外实例化的。在我看来,这似乎会在应用程序的生命周期中无限期地持续存在,而第一个示例中,变量myClass将被清除。

所以我真的想知道:

  1. 我以正确的方式思考这个问题吗? …

javascript node.js promise ecmascript-6

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