CentOS下使用Node.js与express框架

<p>

微软企业课《WindowsPhone开发》的课程设计,客户端做的一个WindowsPhone音乐播放器,服务端是室友是用Node.js做的web,为了方便测试,我直接将其放到服务器上了,在配置node.js的过程中,遇到了一些麻烦,虽然网上一堆现成的方法,但很多教程都过时了,新版本的环境安装过程出了一些变化。现整理如下:

</p>
<p>

我使用的是CentOS 6,其他版本未测试过下面的流程。

</p>
<p>

1.首先安装epel软件源,因为CentOS自带的软件源里没有含有Node.js,当然你选择自己编译Node.js也可以:

</p>
<p>

wget http://linux.linzhihao.cn/shell/centos_epel.sh
sh centos_epel.sh
<p>
    2.安装Node.js:
</p>
<p>
 class="prettyprint lang-bsh">yum -y install nodejs
e>
    <p>
        3.安装Node.js包管理工具npm:
    </p>
    <p>
 class="prettyprint lang-bsh">yum -y install npm
e>
        <p>
            4.安装express包:
        </p>
        <p>

npm config set registry http://registry.npm.taobao.org
npm install -g express

            <p>
                5.创建新的express项目:
            </p>
            <p>

cd newnodejsweb

                <p>
                    6.安装依赖包并启动刚刚创建的项目(注意:express4.0以上不再用node app.js启动应用,而是用npm start):
                </p>
                <p>
 class="prettyprint lang-bsh">npm install -d
start</pre>
                    <p>
                        7.访问http://127.0.0.1:3000/,即可看到express这个默认页面。
                    </p>
                    <p>
                        <br />
                    </p>

QQ截图20141221025015

命令行下的json解析工具jq

今天想给寝室里做服务器的那台电脑做一个动态解析,恰好Dnspod提供了API,好吧就用它了。看了其官方文档发现它的返回结果是用的json格式,那么我想在Linux开机的时候自动将某个域名记录的值设置为本机IP,就得做一个shell脚本放在Linux开机启动项里面(虽然说写一个程序也可以,但那样太麻烦了,而且维护也不方便)。

DNSPOD的API的调用方法和我想象的不一样啊,我原本以为修改某个记录只需要类似下面的命令:

curl https://dnsapi.cn/?email=xxx@xxx.com&password=xxx&record=www.xxx.com&recordtype=A&value=1.2.3.4

结果事实上是这样的:

1.通过Dnspod API获得域名ID;
2.通过Dnspod API,提供域名ID作为参数,获得域名的记录的ID;
3.通过DNSpod API,提供域名ID、记录ID作为参数,更新该记录的值。

好繁琐,如果前两步返回的是纯ID倒还好,但实际上是返回的json格式的信息,还得把里面的域名ID或者记录ID解析出来才行。

网上找了一下,发现了jq这个软件,是专门用来在命令行下解析json格式的信息的。

因为使用很灵活,官网上也提供了一大堆示例,我就懒得写例子了,反正用起来挺方便的。

官网实例:http://stedolan.github.io/jq/manual/

下载地址:http://stedolan.github.io/jq/download/

Linux不能通过DHCP获得IPv6地址的临时解决办法

上周,学校校园网对我所在的宿舍进行了改造,改造前后,我认为最大的区别是:Linux系统不能自动获取IPv6地址了。

这是一个很奇怪的问题,网络改造前一切正常,改造后,我的Windows的PC直接插网线就能获取到IPv6地址,但Linux不管怎么样都不行,不同的发行版都试过,连OpenWRT都试过,但仍然不行,目前原因没找到。

于是没办法,只能手动配置静态IPv6地址和对应的网关了。

这里只说OpenWrt的设置方法,因为其他大多数发行版的IPv6设置方法网上已经烂大街了:

修改/etc/config/network文件,将IPv6设置为如下:

 QQ截图20141214013756

然后重新载入网络:

/etc/init.d/network reload


20分钟学习C++11标准

关于C++ 11标准

C++11标准为C++编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology -- Programming languages -- C++ 。在正式标准发布前,原名C++0x。它将取代C++标准第二版ISO/IEC 14882:2003 - Programming languages -- C++ 成为C++语言新标准。
C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)。C++ 标准委员会计划在2010年8月之前完成对最终委员会草案的投票,以及于2011年3月3召开的标准会议完成国际标准的最终草案。最终于2011年8月12日公布,并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于现行标准的草案(编辑上的修正)。此次标准为13年第一次重大修正。


- 阅读剩余部分 -

fedora系Linux系统yum清理残余依赖项的办法

遇到问题

使用fedora系Linux系统时,经常会用到yum来安装软件,但细心的人就会发现,安装某个软件的时候可能会安装一大堆依赖的库或者组件,但使用yum卸载这个软件的时候却没有将这些额外安装的东西卸载掉,造成了资源的浪费。
那么,如何解决这个问题呢?
原来,yum有个名叫yum-remove-with-leaves的插件,通过它就能<span id="__kindeditor_bookmark_start_10__">将当初安装某个软件所依赖的东西给清理掉。

使用方法

  1. 先按照yum-remove-with-leaves插件:

    yum install yum-remove-with-leaves

  2. 使用yum卸载软件的时候加上--remove-leaves<span id="__kindeditor_bookmark_start_148__">参数,比如:

    yum remove wine --remove-leaves

这样,yum就会将当初安装这个软件所需要的依赖项一起卸载掉了。