Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js元素id中的文档字数输出_Javascript_Node.js_Mammoth - Fatal编程技术网

Javascript Node.js元素id中的文档字数输出

Javascript Node.js元素id中的文档字数输出,javascript,node.js,mammoth,Javascript,Node.js,Mammoth,我很难理解这段代码,它应该读取MicrosoftWord的文档文件并将字数输出到div元素中 我尝试了所有的方法,代码将单词数输出到控制台,但没有输出到div。请在这里帮助我。多谢各位 这是我的html页面 <div id="demo"></div> <script src="script.js"></script> 上面的代码应该显示从file.docx到div元素ID“demo”的字数,但它没有这样做。请帮助您混淆了Mammoth软件包的

我很难理解这段代码,它应该读取MicrosoftWord的文档文件并将字数输出到div元素中

我尝试了所有的方法,代码将单词数输出到控制台,但没有输出到div。请在这里帮助我。多谢各位

这是我的html页面


<div id="demo"></div>

<script src="script.js"></script>

上面的代码应该显示从file.docx到div元素ID“demo”的字数,但它没有这样做。请帮助

您混淆了Mammoth软件包的js前端脚本和Nodejs后端使用

如果使用Nodejs运行下面的脚本,则无法直接更新div元素,因为
document
在这种上下文中没有意义

致命引用错误:未定义文档

在这种情况下,您可以使用来自前端页面的ajax调用来更新div的值

另一方面,如果您想直接从浏览器使用Mammoth,文档建议使用专用版本


注意:在处理之前,您必须设置一个文件读取器来加载您的docx文件。您可以查看以获取实现示例。

您混淆了Mammoth软件包的js前端脚本和Nodejs后端使用

如果使用Nodejs运行下面的脚本,则无法直接更新div元素,因为
document
在这种上下文中没有意义

致命引用错误:未定义文档

在这种情况下,您可以使用来自前端页面的ajax调用来更新div的值

另一方面,如果您想直接从浏览器使用Mammoth,文档建议使用专用版本


注意:在处理之前,您必须设置一个文件读取器来加载您的docx文件。您可以查看以获取实现示例。

为了将文本值传递回客户端,您需要在http响应中将其作为局部变量呈现。为了简单起见,我假设您使用的是服务器端框架,如express,并且您在不使用模板引擎的情况下呈现页面

然后服务器端的代码应该如下所示:

mammoth.extractRawText({path: docxFile}) 
    .then(function(result){
        var text = result.value; // The raw text
        var textLength = text.length; 

        // use textLength as a local variable and pass it to the client

        res.render("the_page_you_want_to_render", { textLength: textLength }, function(err, html){
            if (err) return new Error(err);
            res.send(html);
        }

    })
    .done();
现在,在前端代码中使用占位符,以便显示服务器传递的本地变量:

<div id="whatever" class="youwant">
    #textLength#
</div>

#文本长度#
由于我假设您没有使用任何特定的模板引擎,请将此代码添加到服务器入口点,以便它可以使用您的局部变量呈现html页面:

app.engine('html', function (filePath, options, callback) {
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(err);

    var rendered = content.toString()
    // this is where the magic happens
      .replace('#textLength#', '<p>' + options.textLength + '</p>');

    return callback(null, rendered)

  });

});
app.engine('html',函数(文件路径、选项、回调){
fs.readFile(文件路径、函数(错误、内容){
if(err)返回回调(err);
var rendered=content.toString()
//这就是魔法发生的地方
.替换(“#textLength”、“”+options.textLength+”

”); 返回回调(null,呈现) }); });
为了将文本值传递回客户端,需要在http响应中将其作为局部变量呈现。为了简单起见,我假设您使用的是服务器端框架,如express,并且您在不使用模板引擎的情况下呈现页面

然后服务器端的代码应该如下所示:

mammoth.extractRawText({path: docxFile}) 
    .then(function(result){
        var text = result.value; // The raw text
        var textLength = text.length; 

        // use textLength as a local variable and pass it to the client

        res.render("the_page_you_want_to_render", { textLength: textLength }, function(err, html){
            if (err) return new Error(err);
            res.send(html);
        }

    })
    .done();
现在,在前端代码中使用占位符,以便显示服务器传递的本地变量:

<div id="whatever" class="youwant">
    #textLength#
</div>

#文本长度#
由于我假设您没有使用任何特定的模板引擎,请将此代码添加到服务器入口点,以便它可以使用您的局部变量呈现html页面:

app.engine('html', function (filePath, options, callback) {
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(err);

    var rendered = content.toString()
    // this is where the magic happens
      .replace('#textLength#', '<p>' + options.textLength + '</p>');

    return callback(null, rendered)

  });

});
app.engine('html',函数(文件路径、选项、回调){
fs.readFile(文件路径、函数(错误、内容){
if(err)返回回调(err);
var rendered=content.toString()
//这就是魔法发生的地方
.替换(“#textLength”、“”+options.textLength+”

”); 返回回调(null,呈现) }); });
console.log(text)show?@JackBashford它显示docx文件的内容什么
console.log(text)
show?@JackBashford它显示docx文件的内容谢谢你的回复。我还在学习NodeJS。NodeJS有很多后端包。如果我不能在前端使用它们,这些软件包有什么意义?例如,在什么情况下,我需要猛犸象作为后端?我真的很想制作一个脚本,这样当有人上传一个doc或docx文件时,脚本会告诉我他们在html页面上有多少单词。你认为nodejs是一个不错的选择,还是php或者其他什么东西对这有好处@TGJavaScript是html页面中用于添加动态功能的脚本语言。由于Nodejs,我们可以使用JavaScript服务器端,例如制作一个web服务器。如果要创建cli应用程序,可以在后端使用Mammoth,但如果要创建web应用程序,可能需要服务器和前端脚本,具体取决于应用程序的结构。感谢您的回复。我还在学习NodeJS。NodeJS有很多后端包。如果我不能在前端使用它们,这些软件包有什么意义?例如,在什么情况下,我需要猛犸象作为后端?我真的很想制作一个脚本,这样当有人上传一个doc或docx文件时,脚本会告诉我他们在html页面上有多少单词。你认为nodejs是一个不错的选择,还是php或者其他什么东西对这有好处@TGJavaScript是html页面中用于添加动态功能的脚本语言。由于Nodejs,我们可以使用JavaScript服务器端,例如制作一个web服务器。如果你想制作一个cli应用程序,你可以在后端使用Mammoth,但是如果你想创建一个web应用程序,你可能需要一个服务器和前端脚本,这取决于你如何构造你的应用程序。