Javascript Node.js元素id中的文档字数输出
我很难理解这段代码,它应该读取MicrosoftWord的文档文件并将字数输出到div元素中 我尝试了所有的方法,代码将单词数输出到控制台,但没有输出到div。请在这里帮助我。多谢各位 这是我的html页面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软件包的
<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应用程序,你可能需要一个服务器和前端脚本,这取决于你如何构造你的应用程序。