我正在将我的小网站从 express+handlebars 翻译成 express+sapper 项目。
我想捕获服务器端错误(例如,当您转到 /api/error 时出现自愿错误)并使用sapper _error.svelte模板呈现它们。
我尝试在没有自定义处理程序的情况下抛出错误,但它返回一个只有错误堆栈的丑陋文本页面,并且似乎没有被工兵的错误处理程序捕获
所以我添加了我自己的错误处理程序,我可以渲染 HTML(裸露的,还没有 css)但是有没有办法可以使用 sapper _error.svelte 模板?
// ----------------------- src/server.js
import sirv from 'sirv'
import express from 'express'
import compression from 'compression'
import * as sapper from '@sapper/server'
import fatal500 from './middlewares/fatal500'
const { PORT, NODE_ENV } = process.env
const dev = NODE_ENV === 'development'
const app = express()
app.use(compression({ threshold: 0 }))
app.use(sirv('static', { dev }))
// the voluntary error thrower --------------------------------
app.get('/api/error', (req, res, next) => { …Run Code Online (Sandbox Code Playgroud) 节点child-process有限制吗?我该如何获取(逐块)像 git show 这样的巨大命令输出和一个巨大的文件?
我尝试解析结果git show <commit sha>,有一个巨大的文件(308 344 行)
运行时git show > showed_by_git.txt我有正确的输出,包含所有文件,结果为 118 667 行
当运行节点时child-process我只检索 32 602 行...
我简化了我的代码,并用于child-process在停止流程之前计算字符数和它解析的行数。
结果显示,它停在 32 000 多行,而不是预期的 118 667 行
如果您有一个包含最近提交的一些 HUUUGE 文件的存储库,您可以在家重现此内容
const childProcess = require('child_process')
function fetchCommand (command) {
return new Promise((resolve, reject) => {
const sub = childProcess.exec(command)
let chars = 0
let lines = 0
sub.stdout.on('data', function (chunk) {
chars += …Run Code Online (Sandbox Code Playgroud) 我想以编程方式在 QTreeView 中选择一行,我在这里找到了 95% 的答案。
该select()方法完美地完成了这项工作,只是它似乎没有触发任何单击视图的事件。
我通过自己调用所需的信号找到了一种解决方法 - 但是是否有任何提示可以模拟人类点击并发送所有相关信号的方法?
这是我的解决方法(Python):
oldIndex=treeView.selectionModel().currentIndex()
newIndex=treeView.model().indexFromItem(item)
#indexes stored----------------------------------
treeView.selectionModel().select(
newIndex,
QtGui.QItemSelectionModel.ClearAndSelect)
#selection changed-------------------------------
treeView.selectionModel().currentRowChanged.emit(
newIndex,
oldIndex)
#signal manually emitted-------------------------
Run Code Online (Sandbox Code Playgroud)