res.render()用快递进入div

时间:2017-01-20 06:52:04

标签: javascript jquery ajax node.js express

我正在使用带有express的nodejs,我试图将ejs加载到这样的div中:

app.js(服务器端)

//SHOW
app.get("/courses/:id", function(req,res){
    console.log("requested");
    res.render('courses/show', function(err, html){
        if(err){
            console.log(err);
        }
        else{
            console.log(html);
        }
    });
});

这会在控制台中打印应该加载到DIV中的HTML

main.js(客户端)

$(".course_link").on('click', function(){
  $.ajax({ 
      url: '/courses/asd',
      type: 'get',
      success: function(view) {
         $('#show_load').html(view);
      }
  });
});

我也尝试过:

$(".course_link").on('click', function(){
      $('#show_load').load('/courses/asd', function(){
        alert('ayy');
      });
});

此提醒' ayy',但无法加载文件

HTML(ejs)

<div class="col-sm-8 courses-menu" id="show_load">

</div>

但是它不会将HTML加载到DIV中,但它确实会控制.logs&#39;要求&#39;当我第一次点击时,它也会在每次点击时发出请求..

1 个答案:

答案 0 :(得分:0)

我认为你需要send() html:

// if a callback is specified, the rendered HTML string has to be sent explicitly
res.render('courses/show', function(err, html) {
  res.send(html);
});

https://expressjs.com/en/4x/api.html#res.get

同时确保您的PATH完整:

var PATH = 'http://localhost:3000';    
$(".course_link").on('click', function(){
          $('#show_load').load(PATH + '/courses/asd', function(){
            alert('ayy');
          });
    });