我已经阅读了几篇关于这个主题的文章,但我仍然不清楚是否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
仅仅因为它更短而使用,但是想知道一个是否有任何优势.
根据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) 我想发布一个包含我的源代码和分发文件的npm包.我的Github存储库包含src
包含JavaScript源文件的文件夹.构建过程生成dist
包含分发文件的文件夹.当然,该dist
文件夹不会被检入Github存储库.
如何以某人的方式发布npm包npm install
,他们src
和dist
文件夹一样好?目前,当我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) 我正在使用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: …
我定义了以下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错误?
我的 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) sequelize.sync()上的force选项有什么作用?
sequelize.sync({
force: true
});
Run Code Online (Sandbox Code Playgroud)
具体来说,我有兴趣知道什么力:假吗?它不会将模式与数据库同步吗?
是否有任何正式的续集文档?我只能在文档中找到示例.
垫片中"出口"物业的目的是什么?真的需要吗?
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) 请参阅ud3323提供的另一个问题的解决方案:http://jsfiddle.net/ud3323/ykL69/.此解决方案使用红色突出显示更改的值.我有一个额外的要求:如果该值增加了绿色突出显示,如果它的红色突出显示为红色.为此,我需要知道观察者中的旧值和新值.有没有办法做到这一点?
PS Embers文档没有说明观察者功能中可用的内容.我从示例中可以看出,由于观察者是在itemRowView中定义的,因此"this"指向itemRowView.
有关如何编写模块化Ember.js应用程序的指导吗?我见过汤姆戴尔对AMD位置在这里,所以我不会强迫配合AMD到框架(如一些试图在这里).似乎Ember内部使用bpm/spade.这也是模块化Ember应用程序的合理方法吗?使用这种方法的任何样品?
PS getbpm.org网站似乎已关闭,这使得很难了解它.有一个github页面,但它引用了安装说明的站点.
commonjs ×2
ember.js ×2
javascript ×2
node.js ×2
angular ×1
git ×1
github ×1
jax-rs ×1
jersey ×1
json ×1
npm ×1
promise ×1
requirejs ×1
sequelize.js ×1
tailwind-css ×1
typescript ×1