在IBM i上运行Node.js的Web应用程序,第1部分

在IBM i上使用OSS

您是否了解在IBM i上可以使用开源软件?

虽然这是英文,但已经有一份关于在IBM i上运行开源软件的文档公开发布了。

 

您可以在IBM i上使用Python、Node.js等软件。它们可以在IFS(集成文件系统)上使用,因此如果您熟悉bash等软件,您应该不会遇到特别困难的情况。

我们可以使用一些开源软件来实现,但这次我们将分几次介绍使用Node.js制作应用程序。
最终目标是创建一个使用Node.js进行数据库访问的Web应用程序。
为了做一个稍微互动的应用程序…我制作了一个可以通过摄像头读取二维码并更新状态的应用程序。

我已将创建的应用程序代码存放在这里。

 

由于我自己没有相关的Web应用开发经验,所以这个项目是我摸索着完成的。希望您能对不太完善的地方多多包涵。

安装OSS

这次不详细介绍步骤,但是在ACS中有开源软件包管理的选项,可以从那里进行OSS的安装。
另外,可以在IFS上使用yum进行安装。
通过GUI打开开源软件包管理,如果没有安装开源环境,应该会进行设置。
是图片最下方的选择项。

image.png
image.png

在IBM i上的Node.js

那么,我们立即进入有关 Node.js 的话题吧。
我们来查看一下通过 yum 安装可用的 Node.js 的版本。

Chinese paraphrase:
好的,我们马上来讨论一下 Node.js。
我们尝试验证一下通过 yum 安装可用的 Node.js 版本。

# yum search nodejs
ibmi-base                                                                                                                                        | 3.6 kB  00:00:00
ibmi-base/primary_db                                                                                                                             | 578 kB  00:00:01
ibmi-release                                                                                                                                     | 2.9 kB  00:00:00
========================================================================= N/S Matched: nodejs ==========================================================================
nodejs14.ppc64 : Node.js JavaScript Runtime
nodejs16.ppc64 : Node.js JavaScript Runtime
nodejs18.ppc64 : Node.js JavaScript Runtime
nodejs20.ppc64 : Node.js JavaScript Runtime

  Name and summary matches only, use "search all" for everything.

看起来LTS版本似乎得到了支持。

image.png

可以使用yum install <要安装的软件包名称>来进行安装。
也可以从ACS中选择目标软件包,点击安装按钮即可。

运行后会显示是否要安装,请输入 y 进行安装。

# yum install nodejs20.ppc64
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nodejs20.ppc64 0:20.8.1-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================
 Package                        Arch                        Version                          Repository                       Size
===================================================================================================================================
Installing:
 nodejs20                       ppc64                       20.8.1-1                         ibmi-base                        45 M

Transaction Summary
===================================================================================================================================
Install       1 Package

Total download size: 45 M
Installed size: 45 M
Is this ok [y/N]: 

在完成安装后,您可以使用 node -v 命令来确认已安装的版本。

# node -v
v20.8.1

你的安装是正确的,是吗?如果出现找不到命令的情况,请确认一下路径是否可以访问。

执行此操作将设置软件包路径。

echo 'PATH=/QOpenSys/pkgs/bin:$PATH' >> $HOME/.profile
echo 'export PATH' >> $HOME/.profile

现在,你已经可以使用Node.js了!

先试着动一下

首先,我们将尝试创建一个简单的页面,使得“Hello World!”能够在浏览器上显示出来。
※请注意,Node.js本身是一个javascript的执行环境,所以不一定要使用浏览器。但是由于我们的目标是创建一个Web应用程序,所以不会介绍简单的javascript执行方法。

创建一个目录来创建应用程序的目录。
在创建的目录中使用cd命令后,执行npm init –yes命令。

/home/E36965/work # mkdir helloworld  
/home/E36965/work # cd helloworld/
/home/E36965/work/helloworld # npm init --yes
Wrote to /home/e36965/work/helloworld/package.json:

{
  "name": "helloworld",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

现在,准备创建应用程序完成了。

创建一个名为index.js的新文件,并写下以下内容。

const http = require('http')
const svr = http.createServer(handler)

const port = 9443;
svr.listen(port)
console.log(`Listening on port ${port}!`)

function handler (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'})
  res.end('<h1>Hello World!</h1>\n')
}

如果文件创建成功,就用node index.js来执行。
然后,Node.js会被执行,并且会显示我们指定的端口号。

/home/E36965/work/helloworld # node index.js 
Listening on port 9443!

如果出现类似的显示,从浏览器中访问 http://:9443。

image.png

你好,世界!如果能看到”Hello, World!”,那就是成功了!

我打算在这里结束第一篇文章。从安装Node.js到简单的执行已经完成了。

我希望从下一次开始,可以集中讲解已经创建的应用,并逐步解释。


    2つ目の記事はこちら

 

广告
将在 10 秒后关闭
bannerAds