收藏
回答

调用NODEJS里的FS

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 NODEJD的FS 工具 6.5.3 稳定版 Stable Build (1.06.2303020)
const PizZip = require("pizzip");
const Docxtemplater = require("docxtemplater");
const fs = require("fs");
const path = require("path");
// Load the docx file as binary content
const content = fs.readFileSync(
    path.resolve(__dirname, "input.docx"),
    "binary"

在小程序开发平台用如上图代码调试docxtemplater的时候fs和path都不能引用,已经下载了@types\node,可是在npm里配置不到,以下是错误代码

module 'pages/IOU/fs.js' is not defined, require args is 'fs'


有大牛分享下怎么在小程序里用nodejs里的fs而不是wx.getFileSystemManager()的方法吗?或者wx的这个filesystem怎么和docxtemplater整合?

// 在本地用户文件目录下创建一个文件 hello.txt,写入内容 "hello, world"
const fs = wx.getFileSystemManager()
fs.writeFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`,  'hello, world', 'utf8')


想调试的代码片段:

const PizZip = require("pizzip");
const Docxtemplater = require("docxtemplater");

const fs = require("fs");
const path = require("path");

// Load the docx file as binary content
const content = fs.readFileSync(
    path.resolve(__dirname, "input.docx"),
    "binary"
);

const zip = new PizZip(content);

const doc = new Docxtemplater(zip, {
    paragraphLoop: true,
    linebreaks: true,
});

// Render the document (Replace {first_name} by John, {last_name} by Doe, ...)
doc.render({
    first_name: "John",
    last_name: "Doe",
    phone: "0652455478",
    description: "New Website",
});

const buf = doc.getZip().generate({
    type: "nodebuffer",
    // compression: DEFLATE adds a compression step.
    // For a 50MB output document, expect 500ms additional CPU time
    compression: "DEFLATE",
});

// buf is a nodejs Buffer, you can either write it to a
// file or res.send it with express for example.
fs.writeFileSync(path.resolve(__dirname, "output.docx"), buf);


最后一次编辑于  2023-03-06
回答关注问题邀请回答
收藏

2 个回答

  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    2023-03-06
    小程序运行环境不是nodejs
    2023-03-06
    有用 2
    回复 2
    • 采臣
      采臣
      2023-03-06
      明白了谢谢您,我之前读到可以用npm构建来调用也不成功,可以问下npm构建好了以后怎么在js里用构建的模块吗
      2023-03-06
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-03-06回复采臣
      具体啥模块
      2023-03-06
      回复
  • 游戏人生
    游戏人生
    2023-03-06

    fs是nodeJS 的方法,小程序不一定持续所有nodejs的api

    2023-03-06
    有用 1
    回复 1
    • 采臣
      采臣
      2023-03-06
      明白了谢谢您,我之前读到可以用npm构建来调用也不成功,可以问下npm构建好了以后怎么在js里用构建的模块吗
      2023-03-06
      回复
登录 后发表内容