检查nodejs中是否存在变量

问题描述 投票:0回答:1

我正在尝试检查从数据库中获取的数据是否在ejs视图中存在。

这是我的代码:

controller / testController.js

router.get('/', function(req, res){
   post.findOne((err, doc)=>{
      if(!err){
         res.render("index",{
          title:"Auto Save",
          data:doc  
        })
      }
   })
}) 

views / index.ejs

<div class="form-group">
   <input type="" id="postid" name="postid" value='<%-data._id? data._id :' '%>'>
</div> 

和错误消息:

    27|                         </div>
    28|
    29|                        <input type="" id="postid" name="postid" value='<%-data._id? data._id :' '%>'>
    30|                        
    31|                     </div>
    32|                 </form>

 Cannot read property '_id' of null
at eval (/home/suraj/Documents/start-up/autosave/views/index.ejs:15:21)
at index (/home/suraj/Documents/start-up/autosave/node_modules/ejs/lib/ejs.js:691:17)
at tryHandleCache (/home/suraj/Documents/start-up/autosave/node_modules/ejs/lib/ejs.js:272:36)
at View.exports.renderFile [as engine] (/home/suraj/Documents/start-up/autosave/node_modules/ejs/lib/ejs.js:489:10)
at View.render (/home/suraj/Documents/start-up/autosave/node_modules/express/lib/view.js:135:8)
at tryRender (/home/suraj/Documents/start-up/autosave/node_modules/express/lib/application.js:640:10)
at Function.render (/home/suraj/Documents/start-up/autosave/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/home/suraj/Documents/start-up/autosave/node_modules/express/lib/response.js:1012:7)
at post.findOne (/home/suraj/Documents/start-up/autosave/controller/TestController.js:11:17)
at /home/suraj/Documents/start-up/autosave/node_modules/mongoose/lib/model.js:4883:16
at /home/suraj/Documents/start-up/autosave/node_modules/mongoose/lib/model.js:4883:16
at /home/suraj/Documents/start-up/autosave/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
at /home/suraj/Documents/start-up/autosave/node_modules/mongoose/lib/model.js:4906:21
at _hooks.execPost (/home/suraj/Documents/start-up/autosave/node_modules/mongoose/lib/query.js:4390:11)
at /home/suraj/Documents/start-up/autosave/node_modules/kareem/index.js:135:16
at _combinedTickCallback (internal/process/next_tick.js:131:7)
node.js express mongoose ejs
1个回答
0
投票

您应该检查数据和_id是否存在

<div class="form-group">
   <input type="" id="postid" name="postid" value='<%- data && data._id ? data._id :' '%>'>
</div> 
© www.soinside.com 2019 - 2024. All rights reserved.