使用CouchDB和Angular跟踪费用
在本教程中,我们将使用CouchDB作为后端并选择Angular作为前端技术来构建应用程序。 CouchDB是NoSQL数据库,而Angular是更新的JavaScript MVC框架之一。 令人兴奋和令人敬畏的是,CouchDB是具有HTTP API的数据库–我们的客户端应用程序将直接与该数据库通信:CouchDB将充当我们客户端应用程序所需的唯一后端!
我们将专注于一个小型应用程序来跟踪我们的费用。 每个步骤都会有一个提交,有时该提交还包括测试。 测试不是本教程中的主题,但是如果您对此感兴趣,则应该看看! 您将在GitHub的存储库中找到本教程中使用的全部代码。
为什么选择CouchDB?
你们中有些人可能会说我们可以使用客户端替代方法。 IndexedDB或Local Storage是在客户端本地工作以持久化数据的技术。 但是使用数据库服务器有几个优点:我们可以将许多客户端连接到我们的应用程序。 当您独自在另一个超市中时,您的伴侣可以更新费用清单,这也会增加费用。
使用CouchDB有很多优点:CouchDB本机“说” HTTP,因此我们在数据库和应用程序之间不需要其他层。 我们的JavaScript应用程序可以使用CouchDB提供的RESTful接口直接与CouchDB数据库对话!
而且,如果我们想对数据库使用复制,那就像切面包一样容易:因为CouchDB是为创建分布式数据库系统而设计的。
要求
对于本教程,您将需要安装最新版本的CouchDB(1.6)和最新的稳定Node.js(当前为0.10.x)版本。
安装Node.js和Yo
作为Mac用户,您可以在Node主页上获得官方安装程序。 在Linux和OSX上管理Node.js安装的另一种方法是Tim Caswell的出色nvm 。
我们将安装Yo来搭建我们的应用程序。 在创建骨骼的过程中,您会问我们一些问题。 Yo询问我们是否要使用SASS,如果不确定是否要回答“否”,但我们肯定要包括Bootstrap和预选的Angular-Modules。
在我们的外壳中,键入:
npm install -g yo generator-angular grunt-cli couchapp
mkdir expenses && cd expenses
yo angular expenses
作为我们脚手架的一部分,Yo为我们创建了一个Gruntfile(Gruntfile.js)。 Grunt是JavaScript的任务执行者,它具有许多已经编写的插件,可以自动执行任务并使您的生活更轻松。
使用grunt serve
命令启动开发服务器,并在grunt任务完成后在浏览器中打开http://127.0.0.1:9000
。 下图显示了一个示例。
安装CouchDB
有很棒的文档可以在很多平台上安装CouchDB –有适用于所有主要操作系统的软件包,在OSX上,您可以使用brew安装CouchDB。
CouchDB的第一步
让我们开始第一个CouchDB实例并创建一个数据库:
couchdb & # start a CouchDB
curl -X PUT http://127.0.0.1:5984/expenses # create the database expenses
CouchDB回答:
{"ok":true}
我们刚刚使用HTTP创建了第一个数据库!
让我们进一步探讨CouchDB的HTTP API:现在我们可以插入第一个文档,假设我们要跟踪购买的爆米花(稍后我们的应用程序需要对CouchDB的这些调用)。
curl -X POST http://127.0.0.1:5984/expenses -H "Content-Type: application/json" -d '{"name": "Popcorn", "price": "0.99"}'
CouchDB的答案:
{"ok":true,"id":"39414de82e814b6e1ca754c61b000efe","rev":"1-2b0a863dc254239204aa5b132fda8f58"}``
现在,我们可以使用GET请求和CouchDB分配给我们文档的ID来访问文档,因为我们没有提供特定的ID:
curl -X GET http://127.0.0.1:5984/expenses/39414de82e814b6e1ca754c61b000efe
CouchDB的答案:
{"_id":"39414de82e814b6e1ca754c61b000efe","_rev":"1-2b0a863dc254239204aa5b132fda8f58","name":"Popcorn","price":"0.99"}
之后,我们插入另一个文档:
curl -X POST http://127.0.0.1:5984/expenses -H "Content-Type: application/json" -d '{"name": "Washing powder", "price": "2.99"}'
配置:带有CouchDB的CORS
我们的客户将通过HTTP从CouchDB本身以外的其他位置进行通信。 为了使此功能在我们的浏览器中起作用,我们必须在CouchDB中启用CORS(跨域资源共享)。
在这种情况下,我们要为本地自定义更改修改local.ini
。 可以通过HTTP修改配置。 在https
部分中,我们启用CORS,然后使用通配符配置源:
curl -X PUT http://localhost:5984/_config/httpd/enable_cors -d '"true"'
curl -X PUT http://localhost:5984/_config/cors/origins -d '"*"'
使用这两个命令,我们正在更改CouchDB的local.ini
。 您可以使用couchdb -c
查找local.ini
的位置。
重要! 请注意,如果您将应用程序部署到生产环境中,则可能需要更改“来源”部分。 此处提供的所有设置仅用于开发!
角度和依赖注入
在app/scripts/app.js
我们将找到应用程序的主要JavaScript文件,实际上这就是所谓的Angular模块。 此模块将其他一些模块作为依赖项加载(例如ngCookies
)。 在此文件中,我们还使用$routeprovider
找到了应用程序的客户端路由。
该文件中的$routeprovider
是Angular依赖项注入(DI)的一个很好的例子。 通过定义您要使用的服务的名称,Angular将其注入给定的功能范围。 您可以在docs中找到有关Angular依赖注入的更多信息。
因为我们希望在一个中央位置拥有连接到CouchDB所需的数据,所以让我们尝试使用具有常数的DI。 我们使用链接将它们添加到我们的模块中:
.constant('appSettings', {db: 'http://127.0.0.1:5984/expenses'
});
我们迄今为止唯一控制器,它在初始支架期间创建,是MainCtrl
位于app/scripts/controllers/main.js
。 MainCtrl
被定义并且$scope
被注入。 稍后我们将看到如何使用范围。
现在我们可以将appSettings
添加到函数参数中以注入它们,就像我们之前使用$routeprovider
看到的$routeprovider
:
.controller('MainCtrl', function ($scope, appSettings) {console.log(appSettings);
});
现在,您应该能够在浏览器的调试控制台上记录输出。 恭喜你! 您已成功使用依赖项注入。 您可以在以下位置找到完整的提交: https : //github.com/robertkowalski/couchdb-workshop/commit/d6b635a182df78bc22a2e93af86162f479d8b351 。
取得结果
在下一步中,我们将注入$http
服务以从CouchDB中获取数据并更新视图。 当传统数据库使用分解为表的数据时,CouchDB使用的是非结构化文档,可以使用地图和归约函数(称为视图)来聚合,过滤和合并非结构化文档。 视图由设计文档(一种特殊的文档)定义。
您可以自行编写视图,然后通过curl将其发送到CouchDB,使用位于http://localhost:5984/_utils
的图形界面或通过诸如CouchApp之类的工具–有许多诸如CouchApp之类的工具( npm install -g couchapp
),以npm install -g couchapp
视图的开发和部署。
这是我们的视图:
{"_id":"_design/expenses","views": {"byName": {"map": "function (doc) {emit(doc.name, doc.price);}"}}
}
_id
对我们很重要,因为它定义了以后查询视图的路径。 在创建设计文档时, _id
属性以_design
为前缀。 我们将视图byName
,它仅包含一个基本的map函数,该函数将发出数据库中每个文档的name属性作为键,并将price作为值。
让我们使用curl将其发送到CouchDB:
curl -X POST http://127.0.0.1:5984/expenses -H "Content-Type: application/json" -d '{"_id":"_design/expenses","views": {"byName": {"map": "function (doc) {emit(doc.name, doc.price);}"}}}'
CouchDB响应:
{"ok":true,"id":"_design/expenses","rev":"1-71127e7155cf2f780cae2f9fff1ef3bc"}
现在,我们可以在以下位置查询:
http://localhost:5984/expenses/_design/expenses/_view/byName
如果您对诸如CouchApp之类的工具感兴趣(提示:您稍后必须使用它),那么这里的提交显示了如何使用它(使用npm run bootstrap
部署设计文档)。
您还记得起初的卷曲要求吗? 现在,我们将用JavaScript实现它们。 Angular提供$http
服务,可以如下所示进行注入:
.controller('MainCtrl', function ($scope, $http, appSettings) {
然后,我们添加一个函数以使用$http
服务获取项目:
function getItems () {$http.get(appSettings.db + '/_design/expenses/_view/byName').success(function (data) {$scope.items = data.rows;});
}
getItems();
$http
服务返回一个Promise,它将从CouchDB视图提供给我们JSON数据。 我们正在将数据添加到$scope.items
。 使用$scope
我们可以在视图中设置和更新值。 如果模型上的值发生更改,则视图将自动更新。 Angular的双向绑定使视图和模型之间的数据同步。 控制器更改模型后,它将立即更新视图,并且当视图中的值更改时,还将更新模型。
删除大部分样板标记后,让我们添加一些带有表达式的HTML来在app/views/main.html
显示我们的项目:
<div>{{ item[0].key }}</div>
<div>{{ item[0].value }}</div>
我们将在“使用CouchDB的第一步”部分中看到添加的第一项:
该部分的提交可在GitHub上获得。
使用指令: ng-repeat
现在,我们应该看到第一个项目,但是其他所有项目呢?
我们可以在此处使用ng-repeat
指令,它将为我们从更长的列表中构建标记。 通常,我们可以说Angular中的指令将行为附加到DOM元素。 Angular中还有许多其他预定义的指令,您也可以定义自己的指令。 在这种情况下,我们将ng-repeat="item in items"
到外部div
,然后它将从$scope.items
迭代数组items
。
类pull-left
和pull-right
是Bootstrap CSS的一部分,并为我们提供了浮动元素。 由于元素是浮动的,因此我们正在应用一个clearfix
,它也包含在Bootstrap中:
<div ng-repeat="item in items"><div class="clearfix"><div class="pull-left">{{ item.key }}</div><div class="pull-right">{{ item.value }}</div></div>
</div>
如果刷新页面,则项目将在DOM检查器中呈现为:
<!-- ngRepeat: item in items -->
<div ng-repeat="item in items" class="ng-scope"><div class="clearfix"><div class="pull-left ng-binding">Popcorn</div><div class="pull-right ng-binding">0.99</div></div>
</div>
<!-- end ngRepeat: item in items -->
<div ng-repeat="item in items" class="ng-scope"><div class="clearfix"><div class="pull-left ng-binding">Washing powder</div><div class="pull-right ng-binding">2.99</div></div>
</div>
<!-- end ngRepeat: item in items -->
我们现在有一个不错的小清单,但是除了使用curl之外,还没有办法通过我们的应用程序提交新项目。 到目前为止, 此提交中的应用程序可用,如下图所示。
创建用于提交项目的表格
我们将添加一个包含两个输入的表单:一个输入商品名称,另一个输入价格。 该表格还具有一个用于提交我们的物品的按钮。
Bootstrap中带有class="row"
的div
用于以响应方式对我们的应用程序进行样式设置。 Bootstrap类(如form-control
和btn btn-primary
用于设置按钮和输入的样式。
表单还获得了novalidate
属性:它禁用了浏览器的本机表单验证,因此我们稍后可以使用Angular来验证表单:
<form class="form-inline" role="form" novalidate><div class="row"><div class="form-group"><label class="sr-only" for="item-name">Your item</label><inputclass="form-control"id="item-name"name="item-name"placeholder="Your item" /></div><div class="form-group"><label class="sr-only" for="item-price">Price</label><inputclass="form-control"id="item-price"name="item-price"placeholder="Price" /></div></div><div class="row"><buttonclass="btn btn-primary pull-right"type="submit">Save</button></div>
</form>
表单的提交位于https://github.com/robertkowalski/couchdb-workshop/commit/d678c51dfff16210f1cd8843fbe55c97dc25a408 。
在CouchDB中保存数据
使用ng-model
我们可以观察并访问控制器中输入的值,然后将它们发送到CouchDB。 对于我们的价格输入,我们将添加属性ng-model="price"
:
<inputclass="form-control"ng-model="price"id="item-price"name="item-price"placeholder="Price" />
名称的输入将获得ng-model="name"
属性。 看起来像这样:
<inputclass="form-control"ng-model="price"id="item-price"name="item-price"placeholder="Price" />
我们还在最后一项下面添加了一个小状态框。 我们将需要它来显示错误。
<div class="status">{{ status }}
</div>
现在,我们可以使用$scope.price
和$scope.name
访问控制器中的值。 范围将视图连接到我们的控制器。 看一下Model-View-Controller(MVC)模式,范围就是我们的模型。 Angular有时也称为MVVM(模型-视图-视图-模型)框架-所有这些JavaScript MVC框架通常被称为MVW(模型-视图-任何模型),因为它们之间有很多细微的差异。
但是我们如何提交表格?
发送表单的常用方法是在$scope
上定义一个函数,并在视图中结合ng-submit
指令。 我们的函数将构建要发送到CouchDB的JSON。 创建JSON之后, processForm
将调用postItem
,它将把JSON发送到CouchDB:
$scope.processForm = function () {var item = {name: $scope.name,price: $scope.price};postItem(item);
};
function postItem (item) {// optimistic ui update$scope.items.push({key: $scope.name, value: $scope.price});// send post request$http.post(appSettings.db, item).success(function () {$scope.status = '';}).error(function (res) {$scope.status = 'Error: ' + res.reason;// refetch items from servergetItems();});
}
我们的函数postItem
发生了很多事情:
在将HTTP请求发送到数据库之前,我们正在对用户界面进行乐观更新,因此用户可以立即看到更新,并且我们的应用程序感觉更加敏捷。 为此,我们将项目添加到合并范围内的其他项目。 Angular将为我们更新视图。
然后,我们在后台对商品进行POST请求,成功后,我们将从状态字段中删除所有(先前的)错误消息。
如果发生错误,我们正在向视图中写入错误消息。 CouchDB将告诉我们为什么在返回的JSON的reason
属性中发生错误。 为了再次获得一致的视图,我们在收到错误后重新获取项目列表。
现在,我们可以在表单上添加指令ng-submit
,当提交表单时,它将在作用域上调用我们的函数:
<form class="form-inline" role="form" novalidate ng-submit="processForm()">
就是这样! Angular帮助我们保持了最新观点! 查看最新提交 。
添加验证
您可能已经注意到,我们可以在费用应用程序中放入各种值。 人们可以在价格中添加诸如foo
之类的无效字符串,然后将其发送到服务器。 因此,让我们添加一些服务器端验证:CouchDB能够在更新时验证文档。 我们只需要在设计文档中添加一个带有函数的validate_doc_update
字段即可。 如果数据无效,则此函数应引发异常。
该函数具有四个参数,如下所示:
validate_doc_update: function (newDoc, oldDoc, userCtx, secObj) {// ...
}
newDoc
是将被创建或用于更新的文档。 还有参数oldDoc
, userCtx
和secObj
用于更复杂的验证,但是我们将仅使用newDoc
进行验证:
如果您还没有使用已经提到的CouchApp,我真的建议您现在使用,因为它使处理更大的设计文档变得更加容易。 这是CouchApp的设计文档:
var ddoc = {_id: '_design/expenses',views: {},lists: {},shows: {},validate_doc_update: function (newDoc, oldDoc, userCtx, secObj) {if (newDoc._deleted === true) {return;}if (!newDoc.name) {throw({forbidden: 'Document must have an item name.'});}if (!newDoc.price) {throw({forbidden: 'Document must have a price.'});}if (!/\d+\.\d\d/.test(newDoc.price)) {throw({forbidden: 'Price must be a number and have two decimal places after a dot.'});}}
};// _design/expenses/_view/byName
ddoc.views.byName = {map: function (doc) {emit(doc.name, doc.price);}
};module.exports = ddoc;
在我们的验证中不能undefined
字段name
和price
。 此外,我们正在使用正则表达式测试价格格式。 如果我们只想删除文档,则不需要任何验证。 我们正在使用以下命令更新设计文档:
couchapp push couchdb/views.js http://localhost:5984/expenses
现在,当我们尝试保存无效值时,应该看到错误,如下图所示:
这是相关的提交 。
向前端添加验证
我们现在在服务器上进行了一些验证真是太棒了,但是如果我们不需要请求来验证我们的文档,那岂不是更棒了吗? 让我们使用Angular添加一些验证。
我们的两个输入都是必需的,因此它们都具有required
属性。 您还记得设计文档的validate函数中的正则表达式吗? 指令ng-pattern
使用正则表达式检查我们的输入:
<inputclass="form-control"ng-model="price"id="item-price"name="item-price"placeholder="Price"requiredng-pattern="/\d+\.\d\d$/"/>
使用name-of-the-form.$invalid
我们可以测试输入之一是否无效。 由于我们的表单具有名称-属性form
我们将使用form.$invalid
。 我们可以将此值与ng-disabled
类的指令结合使用,如果表单的值无效或缺失,它将禁用我们的提交按钮:
<buttonclass="btn btn-primary pull-right"type="submit"ng-disabled="form.$invalid">Save</button>
而已! 仅用几行HTML,我们就获得了很好的验证。 查看最新的提交 ,包括测试。
结论
我们已经学习了如何使用CouchDB和Angular构建一个小型应用程序。 Angular和CouchDB为我们做了很多繁重的工作。 我们看了看:
- CouchDB HTTP接口
- CouchDB视图和验证
- Angular的依赖注入
- Angular的双向数据绑定
- 角度指令
- 在Angular中使用验证
Angular和CouchDB是很好的开发工具,它们在帮助我们正常工作的应用程序方面大有帮助。 希望您对CouchDB和Angular有一个初步的了解,并且如果您感兴趣的话,您仍然可以查看许多主题:
- 在CouchDB本身上托管应用程序
- 更新文件
- 编写自己的指令
- 复写
- 在我们看来使用reduce函数
- 测试Angular应用
From: https://www.sitepoint.com/tracking-expenses-couchdb-angular/
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Angular动态表单生成(二)
ng-dynamic-forms源码分析在两个开源项目中,ng-dynamic-forms的源码相较于form.io,比较简单,所以我还勉强能看懂,下面就我自己的理解进行简单分析,若有不对的地方,请大家多多指正。整体结构分析ng-dynamic-…...
2024/4/21 6:50:13 - 使用Storybook管理UI库
babel-ui库介绍 babel-ui是通天塔可视化使用ui库。目前有Alert、Alink、Button、Checkbox、Messages、Modal、ToolTip等组件 而这个对于可视化经常使用的ui库,却有以下两个糟点 没有文档介绍各个组件具体使用方法 目前为止一直没有文档介绍组件的使用方法。这就导致…...
2024/4/27 5:56:54 - 苏薇洁苏薇洁双眼皮案例
...
2024/5/2 9:24:44 - Angular+Requirejs实现模块按需加载
Aangular作为前端开发利器,被广大前端研发人员所熟知,本人从接触到现在快有两年时间了,负责和Angular相关的产品也有10几个,有业务逻辑复杂的,有业务简单的,业务简单架构就简单,怎么搭建都行&am…...
2024/4/21 6:50:09 - AngularJS—路由插件ui.router源码解析
路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分。 那么,对于angular而言,它自然也有内置的路由模块:叫做ngRoute。 不过,大家很少用它,…...
2024/4/20 19:00:45 - 割双眼皮视频播放
...
2024/5/4 1:23:28 - 金国华宁波做割双眼皮过程视频
...
2024/4/19 23:49:51 - 双眼皮恢复后会变窄吗
...
2024/4/26 6:08:28 - 徐国士金国华修复双眼皮吧
...
2024/4/20 6:52:18 - SAP UI5和angular里的常量定义
SAP UI5 以我们以前负责的Opportunity为例,直接创建一个新的js文件,然后用所有字段为大写格式的JSON对象来模拟constant。UI5 framework也是用的这种方式。 Angular 用constant方法注入: app.constant(MONGOLAB_CONFIG, { baseUrl: /datab…...
2024/4/27 4:23:33 - 对双眼皮贴过敏
...
2024/4/21 6:50:06 - 八大处 双眼皮 赵延勇
...
2024/4/21 6:50:05 - 杭州做双眼皮修复术
...
2024/4/21 6:50:05 - 徐州三院做双眼皮怎么样
...
2024/4/21 6:50:04 - 六、UI-Grid 结合实例
原文:106 Binding examples UI-Grid支持在colDef.field的复杂对象绑定。 本教程显示了具有特殊字符、数组元素、嵌套属性和函数的属性的双向绑定。 注意函数不能编辑。 在自定义cellTemplates中可以使用: COL_FIELD 将取代表格中单元格的值。cellTemp…...
2024/4/21 6:50:03 - 镭射定位镭射定位法双眼皮价格
...
2024/4/21 6:50:01 - 十四、UI-Grid HeaderCellClass
原文: 115 HeaderCellClass 在columnDef中可以为每个列表头 设置一个class名称或者通过function返回的一个class名称。 在下面例子中,我们可以设置第一列的字体颜色为蓝色,第二列当排序条件为ASC时字体颜色和背景色改变。 代码:…...
2024/4/21 6:50:01 - [转]angularjs之ui-grid 使用详解
本文转自:http://blog.csdn.net/qhkabuqiluo/article/details/52237710 最近一段时间在使用angularjs 然后就找到ui-grid 这个比较不错的表格插件,感觉还不错,所以分享给大家(ps:新手第一次发) html: [html] view plai…...
2024/4/21 6:50:00 - 五、UI-Grid 页脚
原文:105 Footer 表格页脚 UI-Grid 支持页脚,可以设置showGridFooter 选项设置为true(默认为false)显示。页脚显示网格中的总行数和已筛选行数。如果开启了 ui-grid-selection 功能,将显示选定行。 列脚注 UI-Grid 也…...
2024/4/25 5:39:44 - angularjs ui-grid如何动态设置行高
自己开发的公众号,可以领取淘宝内部优惠券 在用ui-grid的时候我们可以用rowHeight设置行高,可是每一行的高度都是一样的,无法根据行内的内容进行自适应。如下图 为了解决这个问题,google了几天时间找不到动态设置行高的方法。通过…...
2024/4/21 6:49:57
最新文章
- ESP32 烧录固件
第一步:下载固件 git clone --recursive https://github.com/espressif/esp-at.git 第二步:执行编译 在该目录执行 python build.py install 如图: 第三步:选择芯片 输入2 第四步:选择固件 输入1 第五步&#…...
2024/5/4 3:35:01 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Gitlab全量迁移
Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…...
2024/5/3 9:10:56 - vue3项目运行正常但vscode红色波浪线报错
以下解决办法如不生效,可尝试 重启 vscode 一、Vetur插件检测问题 vetur 是一个 vscode 插件,用于为 .vue 单文件组件提供代码高亮以及语法支持。但 vue 以及 vetur 对于 ts 的支持,并不友好。 1、原因 如下图:鼠标放到红色波浪…...
2024/5/1 13:10:52 - 2024年04月IDE流行度最新排名
点击查看最新IDE流行度最新排名(每月更新) 2024年04月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...
2024/5/1 13:25:45 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/2 16:16:39 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/3 23:10:03 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/2 15:04:34 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/4 2:59:34 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57