小编Nar*_*esh的帖子

JavaScript承诺 - 拒绝与抛出

我已经阅读了几篇关于这个主题的文章,但我仍然不清楚是否Promise.reject与抛出错误之间存在差异.例如,

使用Promise.reject

return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            return Promise.reject(new PermissionDenied());
        }
    });
Run Code Online (Sandbox Code Playgroud)

用投掷

return asyncIsPermitted()
    .then(function(result) {
        if (result === true) {
            return true;
        }
        else {
            throw new PermissionDenied();
        }
    });
Run Code Online (Sandbox Code Playgroud)

我的偏好是throw仅仅因为它更短而使用,但是想知道一个是否有任何优势.

javascript promise

329
推荐指数
7
解决办法
16万
查看次数

Node.js - 使用module.exports作为构造函数

根据Node.js手册:

如果希望模块导出的根是函数(例如构造函数),或者如果要在一个赋值中导出完整对象而不是一次构建一个属性,请将其分配给module.exports而不是export .

给出的例子是:

// file: square.js
module.exports = function(width) {
  return {
    area: function() {
      return width * width;
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用:

var square = require('./square.js');
var mySquare = square(2);
console.log('The area of my square is ' + mySquare.area());
Run Code Online (Sandbox Code Playgroud)

我的问题:为什么示例不使用square作为对象?以下是否有效,是否使示例更"面向对象"?

var Square = require('./square.js');
var mySquare = new Square(2);
console.log('The area of my square is ' + mySquare.area());
Run Code Online (Sandbox Code Playgroud)

javascript commonjs node.js

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

如何使用分发文件发布npm包?

我想发布一个包含我的源代码和分发文件的npm包.我的Github存储库包含src包含JavaScript源文件的文件夹.构建过程生成dist包含分发文件的文件夹.当然,该dist文件夹不会被检入Github存储库.

如何以某人的方式发布npm包npm install,他们srcdist文件夹一样好?目前,当我npm publish从我的git存储库运行时,它只会导致src文件夹被发布.

我的package.json看起来像这样:

{
  "name": "join-js",
  "version": "0.0.1",
  "homepage": "https://github.com/archfirst/joinjs",
  "repository": {
    "type": "git",
    "url": "https://github.com/archfirst/joinjs.git"
  },
  "main": "dist/index.js",
  "scripts": {
    "test": "gulp",
    "build": "gulp build",
    "prepublish": "npm run build"
  },
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

git github node.js npm

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

如何将JSON对象发布到JAX-RS服务

我正在使用JAX-RS的Jersey实现.我想POST一个JSON对象到这个服务,但我得到一个错误代码415不支持的媒体类型.我错过了什么?

这是我的代码:

@Path("/orders")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class OrderResource {

    private static Map<Integer, Order> orders = new HashMap<Integer, Order>();

    @POST
    public void createOrder(Order order) {

        orders.put(order.id, order);
    }

    @GET
    @Path("/{id}")
    public Order getOrder(@PathParam("id") int id) {
        Order order = orders.get(id);
        if (order == null) {
            order = new Order(0, "Buy", "Unknown", 0);
        }
        return order;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Order对象:

public class Order {
    public int id;
    public String side;
    public String symbol;
    public int quantity;
    ...
}
Run Code Online (Sandbox Code Playgroud)

像这样的GET请求可以很好地工作并以JSON格式返回一个订单:

GET http://localhost:8080/jaxrs-oms/rest/orders/123 HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

但是像这样的POST请求返回415: …

json jax-rs jersey

66
推荐指数
3
解决办法
15万
查看次数

Angular2代码中的TypeScript错误:找不到名称'module'

我定义了以下Angular2组件:

import {Component} from 'angular2/core';

@Component({
  selector: 'my-app',
  moduleId: module.id,
  templateUrl: './app.component.html'
})
export class AppComponent {
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我在第5行得到以下错误:

src/app/app.component.ts(5,13): error TS2304: Cannot find name 'module'.
Run Code Online (Sandbox Code Playgroud)

我相信module.id指的是CommonJS module变量(见这里).我在tsconfig.json中指定了CommonJS模块系统:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "pretty": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitUseStrict": false,
    "noFallthroughCasesInSwitch": true
  },
  "exclude": [
    "node_modules",
    "dist",
    "typings/browser.d.ts",
    "typings/browser",
    "src"
  ],
  "compileOnSave": false
}
Run Code Online (Sandbox Code Playgroud)

如何更正TypeScript错误?

commonjs typescript angular

63
推荐指数
5
解决办法
5万
查看次数

顺风颜色可以从 CSS 中引用吗?

我的 tailwind.config.js 中有一些自定义颜色:

colors: {
  primary: {
    500: '#0E70ED',
    600: '#0552b3'
  }
}
Run Code Online (Sandbox Code Playgroud)

我想在我的 CSS 文件中使用它们。有没有办法替换#0e70ed下面的primary-500

.prose a.custom-link {
  color: #0e70ed;
}
Run Code Online (Sandbox Code Playgroud)

tailwind-css

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

sequelize.sync()如何工作,特别是强制选项?

sequelize.sync()上的force选项有什么作用?

sequelize.sync({
    force: true
});
Run Code Online (Sandbox Code Playgroud)

具体来说,我有兴趣知道什么力:假吗?它不会将模式与数据库同步吗?

是否有任何正式的续集文档?我只能在文档中找到示例.

sequelize.js

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

RequireJS - 垫片中"exports"属性的目的是什么

垫片中"出口"物业的目的是什么?真的需要吗?

requirejs.config({
    shim: {
        'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我问,因为它似乎是多余的 - 当模块包含在依赖列表中时,我们将再次指定导出的名称作为函数参数:

define(['backbone'], function (Backbone) {
  return Backbone.Model.extend({});
});
Run Code Online (Sandbox Code Playgroud)

requirejs

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

观察者如何在Ember.js中找出被观察属性的前后值?

请参阅ud3323提供的另一个问题的解决方案:http://jsfiddle.net/ud3323/ykL69/.此解决方案使用红色突出显示更改的值.我有一个额外的要求:如果该值增加了绿色突出显示,如果它的红色突出显示为红色.为此,我需要知道观察者中的旧值和新值.有没有办法做到这一点?

PS Embers文档没有说明观察者功能中可用的内容.我从示例中可以看出,由于观察者是在itemRowView中定义的,因此"this"指向itemRowView.

ember.js

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

如何编写模块化Ember.js应用程序

有关如何编写模块化Ember.js应用程序的指导吗?我见过汤姆戴尔对AMD位置在这里,所以我不会强迫配合AMD到框架(如一些试图在这里).似乎Ember内部使用bpm/spade.这也是模块化Ember应用程序的合理方法吗?使用这种方法的任何样品?

PS getbpm.org网站似乎已关闭,这使得很难了解它.有一个github页面,但它引用了安装说明的站点.

ember.js

23
推荐指数
1
解决办法
7680
查看次数