ejs没有发生参数替换

发布于 2022-09-06 21:07:36 字数 3299 浏览 22 评论 0

1. 问题: 用的ejs模版引擎,后台传参去render前端table,结果没有发生数据替换。然后在bootstrap table里onLoadError函数返回的status是200。
2. 相关代码:

app.js

app.engine('html', require('ejs').__express);
app.set('views','./views');
app.set('view engine','html');

api.js

//业务进度
router.post("/studentRole/myProgress", function(req, res, next)
{
    var userInfo = JSON.parse(req.cookies.get('userInfo'));
    //从数据库里查找是否有当前该用户的业务记录
    Apply.findOne({sid: userInfo.username}, function(err, docs)
    {
        if(!err)
        {
            if(docs != "" && docs != null)
            {
                //console.log(docs);
                res.render("studentRole", {
                    id: docs.sid,
                    name: docs.name,
                    dormitory: docs.dormitory,
                    room: docs.room
                });
                return docs;
            }
         
        }
       
    });

});

studentRole.html

<table class="table" id="myProgress" name="myProgress">
    <thead>
        <tr>
            <th data-formatter="runningFormatter">#</th>
            <th>学号</th>
            <th>姓名</th>
            <th>宿舍楼</th>
            <th>房间号</th>
            <th>业务项目</th>
            <th data-field="progress">进度</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td></td>
            <td><%= locals.id %></td>
            <td><%= locals.name %></td>
            <td><%= locals.dormitory %></td>
            <td><%= locals.room %></td>
            <td></td>
            <td></td>
        </tr>
    </tbody>                        
</table>

studentRole.js

$("#myProgress").bootstrapTable(
     {
         method: 'post',
        contentType: "application/x-www-form-urlencoded",
        url: 'api/studentRole/myProgress',
        cache: false,                        //是否使用缓存
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        showToggle:true,                    //是否显示详细视图和列表视图
         rowStyle: rowStyles,
         responseHandler: function(res)
         {
             console.log(res);
             return res.DATA;
         },
         onLoadSuccess: function(data)
         {
             console.log("success rendering data.");
         },
         onLoadError: function(status)
         {
             console.log("error: "+status);
         }
         
     });
3. 报错信息

bootstrap table报错

4. 这个博主的问题描述大概跟我的意思差不多,然后试过他的方法还是不行

试过的方法

5. 我之所以说好像ejs没有发生替换是因为在studentRole.html里我试过<% console.log(locals.id); %>这样子是可以打印到数据到控制台的,可是就是<%= locals.id %>这样,没法渲染到表格。

本人是nodejs大白,不是小白,所以请各位帮忙看看我是哪里不对_(:з」∠)_谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文