需求:在服务器端使用js渲染引擎arttemplate,生成HTML。以实现在后台配置模板,动态生成HTML
微软提供了Microsoft.AspNetCore.NodeServices这个库,专门用来调用nodejs服务
1、安装包Microsoft.AspNetCore.NodeServices、安装nodejs
2、在ConfigureServices方法中添加 services.AddNodeServices();
3、注入INodeServices服务,通过模板获取html
public async Task<IActionResult> Index([FromServices]INodeServices services)
{
var htmlTemplate = "{{each list as item index}}{{item.ID}}-{{item.Title}}{{/each}}";
var listJSON = "[{ \"ID\": \"1\", \"Title\": \"aaa\" }, { \"ID\": \"2\", \"Title\": \"bbb\" }]";
string greetingMessage = await services.InvokeAsync<string>("./arttemplatedemo.js", htmlTemplate, listJSON);
}
项目根目录添加arttemplatedemo.js
const template = require(‘art-template‘); module.exports = function (callback, htmlTemplate,listJSON) { var compile = template.compile(htmlTemplate); var html = compile({ "list": eval(listJSON) }); callback(null, html); }
4、在项目根目录安装art-template的npm包
npm install art-template
5、完成,运行即可
原文:https://www.cnblogs.com/fanfan-90/p/12741494.html