Node.js関連のことを調べてみた2022年07月14日

Node.js関連のことを調べてみた2022年07月14日
目次

Vue 3.0 composition apiによるAWS サーバーレス開発  シリーズ② サーバー側環境設定

# サーバー:Nodejs 16.0 + サーバーレスフレームワーク + serverless-layersプラグイン + sequelize
##アクセス構成
AWS Api -> Lambda(sequelize) -> DBアクセス
## DBの構築 Test用テーブル追加
“`
CREATE TABLE IF NOT EXISTS `member` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(255) NOT NULL,
`last_name` VARCHAR(255) NOT NULL,
`age` INTEGER,
`createdAt` DATETIME ,
`updatedAt` DATETIME ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
insert into member(first_name,last_name,age) value(“fn

元記事を表示

Node.jsでAbortControllerを使って、child_processを強制的に終了させる方法

はいさい!ちゅらデータぬオースティンやいびーん!

# 概要
AbortControllerを使って、Node.jsで実行した`child_process`を強制的に終了させる方法を紹介します。

## 背景
本記事は、前回投稿した、Node.jsでffmpegを使って動画を変換する記事を元に作成しています。

変換の作業に時間がかかりすぎて、サーバーの負荷が過ぎないように、ある一定の時間が経っても子プロセスが終了しなかったら、強制的に終了させる必要があります。

ここで、Abort Controllerを使ってShellに終了のシグナルを送ることができますので、解説していきたいと思います。

## 事前知識
前回の記事を読んでいただければわかりやすいかと思います!

https://qiita.com/tronicboy/items/f3f5d2dbcade2a8e01d9

# コード
前回のコードのPOSTのところを修正します。

`spawn`の引数の設定オブジェクトに、`signal`を追加します。
“`typescript:src/index.ts

app.po

元記事を表示

Node.js・Expressでffmpegを実行し、アップロードした動画を変換する方法

はいさい!ちゅらデータぬオースティンやいびーん!

# 概要
本記事では、Node.jsの`child_process`の`spawn`を使って、アップロードされた動画をffmpegで変換する方法を紹介します。

## 背景
Node.jsでPythonなどのスクリプトを実行して、その結果を持ってレスポンスを返すようなコードが書きたいことが動機で本記事の内容を勉強することになりました。

Node.jsのイベントループシステムは非常に強力で、TypeScriptも共に使うと、JavaScriptの弱点も補ってほぼ無敵だと思います。

しかし、JavaScriptはイベントループがあっても、スレッドは一つ。そこで問題になるのは、大量のリクエストを捌くIOというより、時間がかかるプロセスが問題です。

また、Pythonの機械学習モデル、他言語のスクリプトなど、JavaScriptでは実行できないプロセスもあります。

そこで、助けになるのは、Node.jsの`child_process`機能です。

child_processは、サーバーのshellでコマンドを実行し、その結果を持ってN

元記事を表示

nodejsとytdl-coreを使用しYouTubeの動画をダウンロードする(コード付き)

今回はytdl-coreを使用し動画や音声をダウンロードするコードを紹介していきます。

必要なもの
– nodejs
– ytdl-core(npmでインストール)

“`
npm i ytdl-core
“`

早速ですがコード
“`js:index.js
const ytdl = require(‘ytdl-core’)
const fs = require(‘fs’)

const download = ‘audio’
const url = ‘https://youtu.be/…’

if(download === ‘audio’) {
ytdl(url, {
filter: “audioonly”,
fmt: “mp3”,
}).pipe(fs.createWriteStream(“download.mp3”));
}

if(download === ‘video’) {
ytdl(url, {
fmt: “mp4”,
}).pipe(fs.createWriteStream(“download.mp4”));
}
“`

dow

元記事を表示

AizuHack LINEBot勉強会 Vol.4

# AizuHack LINEBot勉強会 Vol.4

## 資料一覧

– [LINEBotとは](https://docs.google.com/presentation/d/1U1vl67gJNOdO5in7H__jPXWieT3Lv0cFmv350AmAKHA/edit?usp=sharing)
– [AizuHack LINEBot勉強会 Vol.1](https://qiita.com/shinbunbun_/items/7efef6db31514831143d)
– [AizuHack LINEBot勉強会 Vol.2](https://qiita.com/shinbunbun_/items/4034e9c2c7553ed3107e)
– [AizuHack LINEBot勉強会 Vol.3](https://qiita.com/shinbunbun_/items/0dfc42584518dc60e3e7)
– AizuHack LINEBot勉強会 Vol.4(本記事)

## はじめに

こんにちは、会津大学学部二年のしんぶんぶんです。
今回はGCP(Google

元記事を表示

【TypeScript + Express】 “npm run dev”でError: Cannot find module が出たら

こんにちは。

Qiita1発目の記事を何にしようかと悩んでいたのですが、ちょうど
「TypeScriptでバックエンドつくってみよー」
と、半分軽い気持ちで作っていたら見事ハマったので備忘録。

nodemonからts-node-devに変更し、package.jsonでパスエイリアスをフルパスで表記したら、エラーが発生しなくなったので紹介する。

__※ts-nodeがインストールされていることが前提条件__

何にハマったのか

REST APIをnodemonで実行したら、モジュールエラーが発生した。

エラー文は以下。
“`
Error: Cannot find module ‘./index.ts’
“`

解決法

1. 「npm uninstall nodemon」でアンインストール。

→解決方法とまではいかないが、理由としてはモダンなツールではないらしいので。
というよりも、ググって出てきた方法では解決できなかった。

2. 「npm i ts-node-dev」でインストール

→これ

元記事を表示

Node.jsとytdl-coreでYouTubeをDLする時につまずいた点(DLできない、無音になる)

# はじめに
YouTube動画をDLしようとWebで検索すると、怪しげな広告が表示される海外のサービスばかりだったりします。こういったサービスを利用するのはちょっと怖いなと思うので、YouTube動画をDLできるアプリが欲しいと思い調べてみました。

調べてみたところ、[wintyoさん](https://qiita.com/wintyo)が [youtube-downloader](https://github.com/wintyo/youtube-downloader) というアプリを公開していたため、動かしてみることにしました。([wintyoさん](https://qiita.com/wintyo)ありがとうございます)
その際に、動画ダウンロードの処理でつまずいた点があったため記事にしてみようと思います。

動かすにあたって以下の記事を参考にさせて頂きました。
– [YouTube動画をダウンロードするWebアプリを作る](https://qiita.com/wintyo/items/4dd93221ae4094abd80a)
– [Node.jsでYoutube動画を

元記事を表示

Node.js・Expressでmulterを使って、ファイルをアップロードする方法

はいさい、ちゅらデータぬオースティンやいびーん!んな、がんじゅー?(みんな、元気?)

# 概要
本記事では、Node.jsのexpressフレームワークで、multerというミドルウェアを使って、FormDataからファイルを取って、アップロード機能をバックエンドに追加する方法を紹介します。

## 事前準備
### Node.jsのローカルインストール
https://nodejs.org/en/download/

## 目次
1. Expressのセットアップ
1. \

の作成
1. multerの導入

# Expressのセットアップ

## パッケージをインストールする
今回は、TypeScriptを使ったExpressプロジェクトを元に作っていくので、まずは、新規フォルダーを作って、`package.json`を作ります。

また、筆者はyarn推奨派なので、全てのコマンドはyarnを使います。
“`
mkdir express-multer-upload

元記事を表示

Webpacker::Manifest::MissingEntryError 解消法 – Rails version 6.0 環境

## 対象環境
node.js : v16.x.x
rails : v6.0.x

## 具体的なエラー前動作
“`:terminal
rails new xxx
cd xxx
rails g scaffold user
rails db:create
rails db:migrate
rails s
“`
として、
http://localhost:3000/users
にアクセスすると下記のエラーが発生

![Screen Shot 2022-07-11 at 11.58.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646082/3bf33b38-d7f7-251e-5b27-00c41ad72a48.png)

## 対処法
### 1.railsのバージョンを6.1.xに変更する(推奨)
参考:
コマンド
Lhttps://qiita.com/seijMAN/items/ac363f6688c72f4ea186
インストール可能なバージョン参照
Lhttps://rubygems.

元記事を表示

Nuxt3にElementPlusを導入する。

# やる事
Nuxt3にElementPlusを導入して、サクッと画面を作れるようにする。

# 動作環境
– Windows10Home64bit(21H2)
– node v16.16.5
– element-plus v2.2.6
– nuxt v3.0.0-rc.4
– sass v1.53.0
※ChromOSのLinux環境でも動作確認済み

# 手順
## プロジェクト作成
公式ドキュメント通りにやる。Nuxt2系と違い細かい質問は聞かれないし必要最小限の要素だけが用意される。

“`
npx nuxi init sample-elementplus
cd sample-elementplus
npm i
“`

## 動作確認
親の名前並みに見たコマンドで動作確認。とても起動が速い。

“`
npm run dev
“`

## ElementPlusの導入
### 導入
ひとまずnpmからインストール

“`
npm i element-plus @element-plus/theme-chalk sass
“`

公式ドキュメント曰く、Vueのプロジェ

元記事を表示

どこからでもDatabricks SQLに接続する

[Connect From Anywhere to Databricks SQL \- The Databricks Blog](https://databricks.com/blog/2022/06/29/connect-from-anywhere-to-databricks-sql.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

# Databricks SQL向けGo、Node.js、Python、CLIオープンソースコネクターの発表

開発者がお好きなアプリケーションからDatabricks SQLへの接続をシンプルにできるようにするために、本日、[Go](https://github.com/databricks/databricks-sql-go)、[Node\.js](https://github.com/databricks/databricks-sql-nodejs)、[Python](https://github.com/databricks/datab

元記事を表示

ffmpegとnodejsを利用し動画ファイルの詳細を表示する

記事を初めて書くのであまり慣れていませんがとりあえずコードと必要なもの
– nodejs
– ffmpeg

ffmpegのダウンロード

https://ffmpeg.org/download.html

“`Js:index.js
const readline = require(‘readline’).createInterface({
input: process.stdin,
output: process.stdout
});
const { exec } = require(‘child_process’);
readline.question(‘どのファイルの詳細を表示しますか?: ‘, (answer) => {
if(answer !== ”) {
exec(‘ffprobe -hide_banner -loglevel quiet -show_streams -print_format json ‘+answer, (err, stdout, stderr) => {
if(!err) {
var data = JSON.pars

元記事を表示

npm install実施時、npm ERR! code EJSONPARSEを始めとするエラーが発生

npm install laravel-mix –save-devを実行時に下記のようなエラーが発生。

“`linux:表示されたエラーメッセージ
npm ERR! code EJSONPARSE
npm ERR! path c:\xampp_new\xampp80\htdocs\laravel\manual/package.json
npm ERR! JSON.parse Unexpected token “/” (0x2F) in JSON at position 48 while parsing near “…scripts\”: {\n // \”dev\”: \”vite\”,\n …”
npm ERR! JSON.parse Failed to parse JSON data.
npm ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.

npm ERR! A complete log of this run can be found in:

元記事を表示

POSTしたデータを登録するAPIを作る

先日は一覧を取得するAPIを作りましたので今日はPOSTしたデータを登録するAPIを作ります。登録機能は認証も必要ですが後回しにしてまずは登録を優先します。

## やりたいこと
・画面上に入力フォームを設置してボタンを押下でPOSTリクエストを送る
 登録APIのエンドポイントは /api/work
・POSTリクエストを受け取りBODYの内容をDBにINSERTする

### 画面の作成
ソースコードが長くなってきたので要点だけ記載します。ファイルが確認したい場合はgitを参照お願いいたします。ボタンを押下すると入力内容をPOSTでリクエスト送付します。レスポンスを受けて画面を更新するなどが通常の動きですがここでは省略します。

“`tsx:pages/work.tsx
const handleSubmit = (event: React.FormEvent) => {
event.preventDefault();
let data = new FormData(event.currentTarget);
axios.post(“/

元記事を表示

【簡単】Node.jsにsassをインストールする手順

## はじめに
– Node.jsにsassをインストールした際に、エラーになったので、解決手順を備忘録として残します。

## 環境
– Mac
– node バージョン:16.15.1
– npm バージョン:8.11.0

## 前提
– Node.jsはインストール済み(公式サイトから推奨版をインストール)
[Node.js公式サイト](https://nodejs.org/ja/)

## 状況

– sassのバージョンを指定してインストール
“`
$ npm install –save-dev node-sass@4.14.1 sass-loader@10.0.2
“`

– 上記のコマンド実行後に、下記エラー【抜粋】が発生。

“`
npm ERR! gyp verb check python checking for Python executable “python2” in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
“`

## 原因
– 参考記事によると、

元記事を表示

UnityとFirebaseでDAppsゲームを作る

# はじめに
### 今回作ったもの
Symbolブロックチェーン上のウォレットとchrome拡張のSSS_Extensions(以下SSS)を利用したユーザー認証でプレイできるゲーム
ゲーム内容はハイアンドローみたいなもの

https://halad-dev.com/

SSSの追加はこちらから

https://chrome.google.com/webstore/detail/sss-extension/llildiojemakefgnhhkmiiffonembcan

## 概要
#### 環境
– Firebase (Auth, Functions)
– Unity 2021.3.4f1 (WebGL)
– UniTask
– Symbol ブロックチェーン
#### DAppsゲームとは?
この定義は人によって分かれると思うが、この記事ではブロックチェーン用のウォレットを使ったユーザー認証を行うゲームと定義してます。

例えるならば
![SSS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

なんとなくnpmを使うのはもう終わりにする。

# はじめに
本記事では**npm**と**その周辺の知識**をまとめたものになります。
なんとなく使っていたのでこの機会に学び直してみました〜〜:hatching_chick:

# ①npmとはなんだ

* Node.jsの**パッケージ**を管理するツール。
* Node.jsに組み込まれているので、`brew install node`でNode.jsをインストールすればnpmも一緒にインストールされる。

# ②パッケージとはなんだ
* package.jsonに記述されたファイルやディレクトリのこと。
* モジュールが誕生した(細かく機能を分けて開発できるようになった)ことにより、**よく使う機能を再利用できるようにしたもの**。1から機能を作らなくても良いので効率良く開発することができる。
* パッケージを一言でまとめると、**再利用できる機能の塊。**

![package.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

ノンビン塾~エンジニアとしての成長記録6~

## ノンビン塾について
そもそもノンビン塾ってなに?
→[過去の記事参照](https://qiita.com/kenny_engineer/items/fc3a45ef2c123ce49495)

## 今回の講義
#### 【テーマ】
 配列・オブジェクト(連想配列)を理解しよう!
 ※ノンビン塾で学んだ事 と 自分で自習した事 を纏めて記載する

#### 【事前準備】
 ・Node.js(v16.14.2)
 ・VSCode
 ・適当なディレクトリでtest.jsを作成する

### 1)配列について

【複数のデータを順番に並べた構造の事】であると理解した。
1つの箱(変数)に同じデータ型の複数の値を入れる事ができる。

また、配列は、`[ ]` で囲まれている。

そして、目的のデータが「何番目にあるのか」を指定すると、
そのデータを取り出すことができる。

以下例
“`test.js
const list = [“1個目”, “2個目”, “3個目”];

console.log(list);
“`
上記のようにlistを宣言し、console.logで確認して

元記事を表示

Node.jsでAPIを呼び出すときの同期処理のメモ

毎回、同期処理で悩みます。

Promise とか async とか意味わからんし・・・。

用語の意味から混乱します。

同期処理は、最初のコードから次のコードへと順次処理(実行)されていくこと。
非同期処理は、ある処理が終了するのを待たずに、別の処理を実行すること。

 
今日は冷静になって、同期処理を研究してみました。
私はど素人なので、もっといい方法があれば教えてください。

## APIを呼び出すときの同期処理の研究

### 利用API

気象庁のAPIからデータをとる事例でいろいろ試してみました。

https://www.jma.go.jp/bosai/forecast/data/overview_forecast/340000.json

こんなJSONファイル
“`
{
“publishingOffice”:”広島地方気象台”,
“reportDatetime”:”2022-07-09T21:27:00+09:00″,
“targetArea”:”広島県”,
“headlineText”:””,
“text”:” 中国地方は、湿った空気の影響で概ね曇

元記事を表示

[Lambda]s3.putObjectが初回実行時に完了しない時の対処法

AWS SDK for JavaScriptのs3.putObjectが、1回目は通らないのに2回目は通るという事態が起きました。
結論から言うと、promiseを返していなかったことが原因でした。

だめだったコード
“`
s3.putobject({
Body: {body},
}, function(err, data) {

“`

元記事を表示

OTHERカテゴリの最新記事