【发布时间】:2018-12-29 01:29:34
【问题描述】:
这是我的服务器代码,下一个片段渲染角度home.comnponent:
app.get("*", (req, res) => {
res.render(
`../${CLIENT_DIST_DIR}/index`,
{
req: req,
res: res,
providers: [
{
provide: REQUEST, useValue: (req)
},
{
provide: RESPONSE, useValue: (res)
},
{
provide: "ORIGIN_URL",
useValue: (`${http}://${req.headers.host}`)
}
]
},
(err, html) => {
if (err) {
Log.error("NG render error", err);
throw err;
}
res.send(html);
}
);
});
这是我的home.component 错误:
@Component({
selector: "app-home",
templateUrl: "./home.component.html"
})
export class HomeComponent implements OnInit {
constructor(private http: TransferHttpService,
@Inject(AppStorage) private appStorage: Storage) {
}
ngOnInit(): void {
let t = null;
console.log(t["sd"]["sd"]["sd"]);
}
}
在控制台我得到错误,没关系:
ERROR TypeError: Cannot read property 'sd' of undefined at HomeComponent.ngOnInit (nodejs\dist\proxy\server.js:1402:58876) at checkAndUpdateDirectiveInline (nodejs\dist\proxy\server.js:47324:19) at checkAndUpdateNodeInline (nodejs\dist\proxy\server.js:48588:20) at checkAndUpdateNode (nodejs\dist\proxy\server.js:48550:16)
但是在回调中这个条件不起作用:
.....
(err, html) => {
if (err) {
Log.error("NG render error", err);
throw err;
}
res.send(html);
}
.....
在这里,err == null。为什么?
我想在服务器上记录此类错误并将它们写入文件。
怎么做?
【问题讨论】:
-
你检查过服务器运行的终端,我认为它正在终端中打印。可能是快速渲染引擎生成带有错误的html而不给出错误
-
@RaviSevta 是的,它在本地工作。问题是
err始终是null。我这样设置视图引擎:app.set("view engine", "html"); app.set("views", CLIENT_APP_DIR);
标签: javascript node.js angular angular-universal server-side-rendering