小编Ani*_*ket的帖子

将字符串转换为缓冲节点

我正在使用一个函数库,它在函数调用时返回缓冲区的toString.

确切的代码是

return Buffer.concat(stdOut).toString('utf-8');
Run Code Online (Sandbox Code Playgroud)

但我不想要它的字符串版本.

我只想要缓冲区

那么如何将字符串转换回缓冲区.

像是的东西

var bufStr = Buffer.concat(stdOut).toString('utf-8');
//convert bufStr back to only Buffer.concat(stdOut).
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

我试过了

var buf = Buffer.from(bufStr, 'utf-8');
Run Code Online (Sandbox Code Playgroud)

但它抛出utf-8不是一个功能.当我做

var buf = Buffer.from(bufStr);
Run Code Online (Sandbox Code Playgroud)

它抛出TypeError:这不是一个类型化的数组.

谢谢

node.js

56
推荐指数
3
解决办法
7万
查看次数

如果我们不解决或拒绝承诺会发生什么

我有一个场景,我将返回一个承诺.承诺基本上给出了ajax请求的响应.

在拒绝承诺时,它显示错误对话框,表明存在服务器错误.

我想要做的是当响应代码是401时,我既不想解决承诺也不想拒绝它(因为它显示错误对话框).我想简单地重定向到登录页面.

我的代码看起来像这样

function makeRequest(ur,params) {

    return new Promise(function(resolve,reject) {

        fetch(url,params)
        .then((response) => {

            let status = response.status;

            if (status >= 200 && status < 300) {
                response.json().then((data) => {
                    resolve(data);
                })
            }
            else {
                if(status === 401) {
                    redirectToLoginPage();
                }
                else {
                    response.json().then((error) => {

                        if (!error.message) {
                            error.message = constants.SERVER_ERROR;
                        }
                        reject({status,error});
                    })    
                }
            }

        })
    });
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的状态是401,我正在重定向到登录页面.承诺既未得到解决也未被拒绝.

这段代码好吗?或者有更好的方法来实现这一目标.

谢谢.

javascript ecmascript-6 es6-promise

55
推荐指数
2
解决办法
2万
查看次数

从dom元素获取window对象的引用

我有这样的javascript代码

var element = $("elementId");
Run Code Online (Sandbox Code Playgroud)

我得到了元素的引用(这是一个div).

现在我需要获得这个div元素所在窗口的引用.但问题是,这里$是从不同的窗口传递的.所以现在元素位于不同的窗口中.

如何引用包含这个div元素的窗口对象?请帮助.

javascript jquery

40
推荐指数
1
解决办法
2万
查看次数

RequireJS中的命名模块与未命名模块

我们可以通过给它命名来在requireJS中创建一个模块:

define("name",[dep],function(dep) {
      // module definition
});
Run Code Online (Sandbox Code Playgroud)

或者我们可以创建一个不包括名称:

define([dep],function(dep) {
      // module definition
});
Run Code Online (Sandbox Code Playgroud)

哪个是创建模块的更好方法?我知道RequireJS建议避免分配模块名称.

但我想知道我们在什么场景下做,而不必给模块命名.这会影响使用吗?每种方式的优点和缺点是什么?

javascript requirejs

37
推荐指数
2
解决办法
1万
查看次数

媒体查询无法在iframe中运行

我有一个响应的网页.它利用媒体查询.

但是在iframe中加载的同一页面无效.

例如,考虑到我的网页,当屏幕宽度小于640px时,我将背景颜色设置为红色.

@media only screen and (max-device-width : 640px) {

    .header-text {
        background-color: red;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我在新选项卡中加载该窗口并使浏览器宽度小于640px时,背景颜色变为红色.

但是在320*480维度的iframe中加载时,同一窗口没有背景颜色为红色.

如何使媒体查询在iframe中工作?

html css iframe media-queries

25
推荐指数
3
解决办法
4万
查看次数

服务工作者可以缓存POST请求吗?

我尝试在fetch事件中缓存服务工作者的POST请求.

我用了cache.put(event.request, response),但退回的承诺被拒绝了TypeError: Invalid request method POST..

当我尝试使用相同的POST API时,caches.match(event.request)给了我未定义的内容.

但是当我为GET方法做同样的事情时,它起作用了:caches.match(event.request)因为GET请求给了我一个响应.

服务工作者可以缓存POST请求吗?如果他们不能,我们可以使用什么方法使应用程序真正脱机?

javascript post request service-worker pwa

21
推荐指数
2
解决办法
2万
查看次数

未捕获的ReferenceError:未定义React

嗨,我知道这类问题已被问过很多次,但我无法得到答案.

我正在尝试编写一个React hello world示例.我只有两个文件,一个是app.jsx,另一个是homepage.jsx.我正在使用webpack捆绑文件.

但是当我运行代码时,我得到了 Uncaught ReferenceError: React is not defined

我的homepage.jsx看起来像这样

"use strict";

var React = require('react');

var Home = React.createClass({
    render : function() {
        return (
            <div className="jumbotron">                
                <h1> Hello World</h1> 
            </div>
        );
    }
});

module.exports = Home;
Run Code Online (Sandbox Code Playgroud)

我的app.js看起来像这样

var ReactDOM = require('react-dom');

var Home = require('./components/homePage');

ReactDOM.render(
  <Home/>,
  document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)

在浏览器中,它会抛出Uncaught ReferenceError: React is not defined第7行,即我需要主页的位置.

但是当我在app.jsx中添加var React = require('react')时它工作正常.

我不明白这一点.我在homepage.jsx中包含了反应,我正在使用它.在app.jsx我只需要react-dom因为我不使用React.那么为什么它在app.jsx中给出错误.

请帮助!!

reactjs webpack react-dom

18
推荐指数
2
解决办法
4万
查看次数

如何在firefox中的contentEditable div中禁用<br type ="_ moz"

Firefox自动插入一个

 <br type="_moz">
Run Code Online (Sandbox Code Playgroud)

在按Enter键的contentEditable div中.当我通过document.execCommand插入任何元素时,它还会自动添加一个<br>.

其他浏览器中不存在此行为.

如何在firefox中防止这种情况发生.

html firefox contenteditable

10
推荐指数
1
解决办法
1613
查看次数

从日历打开Cordova Android应用程序

您好我在我的离子应用程序中使用EddyVerbruggen/Calendar-PhoneGap-Plugin来保存日历事件.

我想要实现的是当我去我的日历并点击该事件时我想打开我的应用程序.怎么做?

android cordova ionic

8
推荐指数
1
解决办法
424
查看次数

服务器端呈现不等待API调用完成

嗨我正在使用Angular版本4.3,我已经实现了本文中提到的服务器端呈现.

https://medium.com/@cyrilletuzi/angular-server-side-rendering-in-node-with-express-universal-engine-dce21933ddce

当我点击服务器URL以使服务器端呈现HTML时,组件的初始数据确实出现,这些数据是静态的,不依赖于任何API调用.

但问题是渲染不包含完成AJAX请求后应该存在的数据.

我在我的组件的ngOnInit方法中编写了API调用.它调用一个服务,该服务调用angular的http服务的get方法来获取数据.角度通用渲染确实调用此函数.呼叫已作出,但不等待响应返回.它改为返回初始数据.在服务器控制台中一段时间​​后,我确实看到响应已经回到服务器.但到那时,角度普遍已经回归.

请帮忙解决这个问题.

angular-universal angular

8
推荐指数
1
解决办法
1716
查看次数