一直试图在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) 是否有可能在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查询,它可以提高性能.
编辑:嗯......我只是自己尝试过,不,它不起作用.除非我做错了.所以现在我想我的问题已经改变了,实现这样的事情的好方法是什么?
我有一个关于对象实例化的问题。现在我已经设置了一个相当大的应用程序,并在后端实现了 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将被清除。
所以我真的想知道:
我以正确的方式思考这个问题吗? …
node.js ×3
angular ×1
ecmascript-6 ×1
express ×1
javascript ×1
pg-promise ×1
postgresql ×1
promise ×1
typescript ×1