node.js - Nodejs窗口取消定义
问题描述
如何解决ReferenceError: window is not defined?这是我的代码
let timestamp = new Date();
var str = params.email;
var enc = window.btoa(str);
var dec = window.atob(timestamp);
console.log(window)
if (window == "undefine"){
var template = handlebars.compile(html);
var htmlToSend = template({email:enc + "|" + dec});
var mailOptions = {
from: 'support@google.com',
to: params.email,
subject: 'Sending Email using Node.js',
html: htmlToSend
};
解决方案
您的 NodeJS 代码是服务器端的。您不能让服务器代码直接调用客户端代码、访问其变量等;你也不能反过来做。
nodejs中btoa的替代品
let timestamp = new Date();
var str = params.email;
// create a buffer
const buff = Buffer.from(str, 'utf-8');
// decode buffer as Base64
const base64 = buff.toString('base64');
//var enc = window.btoa(str);
//var dec = window.atob(timestamp);
推荐阅读
- r - 闪亮服务器的 ShinyApps 文件对入侵者安全吗?
- dynamics-business-central - Business Central API 扩展:如何将插入触发器连接到 API 自定义页面?
- python-3.x - 我想抓取所有公司名称链接,但只获得前 20 个链接
- swift - 点击 TableViewCell 以显示 UIPickerView
- c# - ASP.NET Core API - 发布列表
从作为单个字符串接收的招摇 UI - numpy - 如何将numpy中的数字序列拆分为单个数字?
- javafx - 在哪里可以找到有关 JavaFX CSS 的完整官方参考资料?
- java - 按返回时返回第一个片段
- android - 尽管创建了文件,但 Android Intent ACTION_CREATE_DOCUMENT 始终导致 URI==null
- c - C printf:有没有办法在变量之后和间距之前添加文本?