Javascript错误:“第一个参数必须是字符串或缓冲区”与Ajax

时间:2017-01-17 17:24:27

标签: javascript jquery ajax node.js

我有一个template-main.js文件,该文件具有一个功能,可以根据三个输入创建要显示的网页。这就是它最初所说的:

<p>
    <label>
        {{ userform.iAgree }} {{ userform.iAgree.label }}
    </label>
</p>

这个方法很有效,但是我想将html移动到一个单独的文件中,所以我创建了template-main.html并将其放入:

exports.build = function(title, pagetitle, content) {
  return ['<!doctype html>',
  '<html lang="en"><meta charset="utf-8"><title>{title}</title>',
  '<link rel="stylesheet" href="/assets/style.css" />',
  '<h1>{pagetitle}</h1>',
  '<div id="content">{content}</div>']
  .join('n')
  .replace(/{title}/g, title)
  .replace(/{pagetitle}/g, pagetitle)
  .replace(/{content}/g, content);
};

之后我更改了template-main.js,以便它读取HTML文件的内容并将其保存为变量:

<!DOCTYPE html>
<html lang="en"><meta charset="utf-8">
<head>
  <title>{title}</title>
  <link rel="stylesheet" href="/assets/style.css" />
</head>
<body>
  <h1>{pagetitle}</h1>
  <div id="content">{content}</div>
</body>
</html>

我还不想修改标题占位符,所以我没有添加那些代码,但是当我启动项目时,我收到了这个错误:

var $ = require('jquery')(require("jsdom").jsdom().defaultView);

var template = $.ajax({
    url : "template-main.html",
    success : function(result){
        alert(result);
    }
});

exports.build = function(title, pagetitle, content) {
  return template;
};

问题:¿如何更改template-main.js文件以使其有效?¿有没有办法仍然更改占位符中的文本?

0 个答案:

没有答案