云笔记开发记录二:node-webkit 如何启动 express(更准确说是MEANJS) 项目?

node-webkit 如何启动 express(更准确说是MEANJS) 项目?


一般网上都是教你node-webkit从一个html文件启动起来的~当我们是用一个express项目让node-webkit启动的话,就很少有人写到过~

所以,我将在这里记下我是如何让node-webkit启动一个express服务的!

参考官方资料: 
https://github.com/nwjs/nw.js/wiki/NW.js-use-express-and-similar-web-frameworks

从官方文档来看,貌似只需要将 main 属性配置成一个url, node-main 配置成express服务启动的脚本就行了~ 
代码如下所示:

{
 ...
    "node-main":"./app/server.js",
    "main": "http://localhost:3000",
 ...
}

上面的代码是node-webkit项目的 package.json文件(不是node的package.json),其中 node-main 是我们 express 的启动脚本,main是我们启动express后,node-webkit将会访问的第一个页面。

恩,这样子配置完是不是就可以了呢? 
我们试着启动一下~我们就会发现,服务并没启动!!!

奇怪~服务怎么没启动起来呢? 
我们试着用终端来启动下该express项目,看看是不是express项目配置有问题导致的。 
如下图:

居然报错说没找到 E:\webstormWorkspace\cnote\config\assets\default 模块~ 
仔细的看了下上面报错的路径地址~咦? 

我的路径不应该是:E:\webstormWorkspace\cnote \app \config\assets\default ?

路径中怎么会少了app该目录呢? 
突然想起来,当node-webkit启动我的cnote项目的时候,它是从cnote目录开始的,那么nodejs的全局process.cwd()返回的工作目录地址就是E:\webstormWorkspace\cnote;然后,我们看下刚才报错的文件,发现该文件使用了很多 process.cwd()

 

上图中某部分代码:path.join(process.cwd(), ‘modules/*/client/‘),因为我现在可以知道,我们当前的cnote项目中的全局 process.cwd() 返回的结果是:E:\webstormWorkspace\cnote,而不是 E:\webstormWorkspace\cnote\app,所以,导致那些引入的文件路径都错了~ 
既然知道了问题,那我们就找方法解决这个问题。 
全局对象 process 提供了process.chdir(directory),这个方法将会改变我们项目的当前工作目录,也就是说我们跟nodejs说:“嘿,我们的工作目录不是那个,是这个…~”。

process 参考资料: 
https://nodejs.org/api/process.html#process_process_chdir_directory

我们只需要在调用process.cwd()方法前,用process.chdir(directory)将当前工作目录修改~ 
如:

然后,我们再次执行下startCnote.bat脚本,

发现服务正常启动了~

时间: 2024-10-21 12:16:53

云笔记开发记录二:node-webkit 如何启动 express(更准确说是MEANJS) 项目?的相关文章

云笔记开发记录一:node-webkit 项目结构?

node-webkit 项目结构? 一般用过nodejs写过点小东西的人,都应该知道nodejs项目一般都有一个package.json文件,这个package.json文件,该文件定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据). 为什么要提 nodejs 的 package.json文件 呢,因为, node-webkit 项目它也有自己的 package.json文件 . 但是这两者是不同的! node-webkit的package.json是用来配置n

项目开发记录二

关键字:时间,努力,效率,利益. 关键句:没有结果的努力只能说明一点,你做的都是假努力!从你做出的东西就能反应你花了多少时间! 有技术的拥有话语权,我们是靠的不是行政管理! 你想到的不仅是你能从别人那里得到什么,还有你能给别人带去什么. 选择共同做项目,就意味着承担这份责任,维持彼此之间的就是利益. 我把项目分配给你做,是对你的一种期待,期待你现在或者经过训练后能帮我解决部分问题,而若是我觉得把这些问题交给你做,还不如我自己利索,那我们也就没有共事的意义了. 让你去做的是你现在不会的,而那些你会

[ionic3.x开发记录]参考ionic的float-label动效,写一个项目内通用的input组件,易扩展

上图: module: import {NgModule} from "@angular/core"; import {CommonModule} from "@angular/common" import {PpInputComponent} from './pp-input' import {FormsModule} from "@angular/forms"; @NgModule({ declarations: [PpInputCompon

jquery easyui根据需求二次开发记录

1.tree需要显示多个图标 实际需求:设备树上节点需搁三个图片,分别标识运行状态.告警状态.设备类型 解决方法:给tree的iconCls传入一个数组,分别是各状态下的class(css),然后要改动easyui关于tree节点组装部分的代码 if(item.iconCls ){ cc.push("<span class=\"tree-icon tree-folder "+(item.iconCls?item.iconCls:"")+"\

phpcms程序二次开发记录

1. phpcms/base.php 中的 pc_base 类 静态类,主要加载各个文件使用.2. pc_base 中 load_sys_func 等带 sys的函数,基本都是加载 lib下文件. func加载functions下: class 加载 class下3. pc_base 中 函数一般第一个参数为文件名,第二个参数为路径,第3个参数有一般为:加载类是否实体化4. pc_base 中 load_app开头则为加载modules下的 functions和class等5. 网站开始入口控制

LNMP系列网站零基础开发记录(二)

[目录] 扯淡吹逼之开发前奏 Django 开发环境搭建及配置 Bootstrap 前端页面开发 Django app开发 Django 站点管理 Python 简易爬虫开发 Nginx&uWSGI 服务器配置 ...  二.Django 开发环境搭建及配置  1. 开发环境 开发环境依然是Windows,可以开发的django的IDE较多,我只使用过以下几种 Eclipse  免费IDE,需要下载pydev插件,代码提示功能不错 Visual Studio 需要下载PTVS,结合了VS强大的编

Node.js Web开发(二)

上一篇文章主要介绍了koa2的基本操作(坐下坐下),但是每次都返回一样的HTML似乎也不可能,所以现在我们需要来处理URL了. 直接来点高级点的东西,我们需要一个能处理URL的middleware,它叫做:koa-router: npm install koa-router 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 const Koa = require('koa'); const router = require('koa-route

使用Node.js进行Web开发(二)

2.1 安装Express 如果一个包是某个工程的依赖,那我们需要在工程的目录下使用本地模式安装这个包,如果要通过命令行调用这个包中的命令,则需要用全局模式安装.Express提供了命令行快速构建项目的工具,所以我们使用全局安装: $ npm install -g express 2.2 建立工程 Express在初始化一个项目的时候需要指定模板引擎,通过以下命令建立项目基本结构: express demo 当前目录下出现了子目录demo,并产生一些文件. NodeJS的默认模板是jade,过于

微信开发(二)设置微信回调服务器 ( Node.js )

div#cpmenu {height:200px;float:left;} div#cpcontent {height:200px;width:150px;float:left;} 文章作者:松阳 原文链接:http://blog.csdn.net/fansongy/article/details/43341405 概述 上一篇中简单介绍了Token的获取,这篇中介绍如何设置回调服务器.使用技术为Node.js中的Express. 搭建服务器 这里我使用Node.js中的Express框架实现一