.Net Core-調用NodeJs(NodeService)


需求:在服務器端使用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 nodeService)
        {
            //js模板
            var htmlTemplate = @"
            OrderID:{{model.ID}}<br>
            UserName:{{model.UserName}}<br>
            {{each model.OrderItems as item index}}
            {{item.OrderID}}-{{item.Price}}
            {{/each}}";
            //數據
            var orderModel = new Order { ID = 1, UserName = "fan", OrderItems = new List<OrderItem> { new OrderItem { OrderID = 1, Price = 10.00M }, new OrderItem { OrderID = 1, Price = 15.00M }, new OrderItem { OrderID = 1, Price = 13.00M } } };
            var orderJSON = JsonConvert.SerializeObject(orderModel);
            //獲取html
            string html = await nodeService.InvokeAsync<string>("./nodejs_handler.js", htmlTemplate, orderJSON);

            return View();
        }

 

項目根目錄添加nodejs_handler.js

const template = require('art-template');

module.exports = function (callback, htmlTemplate, dataJSON) {
    var compile = template.compile(htmlTemplate);
    var html = compile({ "model": JSON.parse(dataJSON)  });

    callback(null, html);
}

 

4、在項目根目錄安裝art-template的npm包

 npm install art-template 

 

5、完成,運行即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM