Blog#111: ðžãŠããããã¹ããšã¯äœã§ããïŒãããŠãªãéèŠãªã®ã§ããïŒðž
ãã®èšäºã®äž»ãªç®çã¯ãæ¥æ¬èªã¬ãã«ãäžããã®ãæäŒãããšã§ãããœãããŠã§ã¢éçºã«é¢é£ããæŠå¿µãç¥èãªãšã玹ä»ããããã«ç°¡åãªæ¥æ¬èªã䜿ããŸããITã®ç¥èã«é¢ããŠã¯ãã€ã³ã¿ãŒãããäžã§ãã£ãšãã説æãããŠãããããããŸãããããã®èšäºã®äž»ãªç®æšã¯ãŸã æ¥æ¬èªãåŠã¶ããšã§ãã
ããã«ã¡ã¯ãç§ã¯ãã¥ã¢ã³ãšç³ããŸããæ±äº¬ãããã«ã¹ã¿ãã¯Webéçºè ã§ãã å°æ¥ã®æçšã§é¢çœãèšäºãèŠéããªãããã«ãç§ã®ããã°ããã©ããŒããŠãã ããã
ãŠããããã¹ãã¯ããœãããŠã§ã¢ã®åã ã®ãŠããããã³ã³ããŒãã³ãããã¹ãããæ¹æ³ã§ããJavaScriptã®æèã§ã¯ãããã¯éåžžãåã ã®é¢æ°ãã¢ãžã¥ãŒã«ããã¹ãããããšãæå³ããŸãã
åäœãã¹ãã¯éèŠã§ãããªããªããéçºè ã¯éçºããã»ã¹ã®åææ®µéã§ãã°ãæ€åºã§ããããã§ããããã«ããããã°ãã¢ããªã±ãŒã·ã§ã³å šäœã«åºããåã«å€ãã®æéãšåŽåãç¯çŽã§ããŸããããã«ãåäœãã¹ãã¯ã³ãŒãã®ããã¥ã¡ã³ããšããŠæ©èœããŸãããªããªããã³ãŒããã©ã®ããã«äœ¿çšãããã¹ããã瀺ãäŸãæäŸããŠããããã§ãã
Node.js ExpressãšJavaScriptã¯åäœãã¹ãã«æé©ãªãã®ã§ã
Node.jsã¯ãµãŒããŒãµã€ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äººæ°ã®ããã©ã³ã¿ã€ã ç°å¢ã§ãããExpressã¯Node.jsäžã«Webã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äººæ°ã®ãããã¬ãŒã ã¯ãŒã¯ã§ããNode.jsãšExpressã®äž¡æ¹ãåäœãã¹ãã«æé©ãªç¹åŸŽãæäŸããŠããŸãïŒ
- éåæã³ãŒãã®å®è¡ïŒNode.jsãšJavaScriptã¯éåæã³ãŒããæ±ãã®ã«é©ããŠãããããä»ã®ãã¹ãã®å®è¡ã劚ããªããããªãã¹ããæžãã®ãç°¡åã«ãªããŸãã
- ã¢ãžã¥ã©ãŒãã¶ã€ã³ïŒNode.jsãšExpressã®äž¡æ¹ã¯ã¢ãžã¥ã©ãŒãã¶ã€ã³ã«åºã¥ããŠãããããã¢ããªã±ãŒã·ã§ã³ã®åã ã®ã³ã³ããŒãã³ããåé¢ããŠãã¹ãããã®ãç°¡åã«ãªããŸãã
- 倿°ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ïŒJavaScriptã®ãšã³ã·ã¹ãã ã«ã¯ãJestãMochaãChaiãªã©ãåäœãã¹ããå©ããããã«ç¹å¥ã«èšèšããã倿°ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ããããŸãã
Node.js ExpressãšJavaScriptã䜿ã£ããŠããããã¹ãã®äŸãããã€ã玹ä»ããŸã
ããããã®äŸã§ã¯ããŠããããã¹ããã©ã®ããã«äœ¿ããããã瀺ãã³ãŒããµã³ãã«ã瀺ããŸãã
1. èšç®ã®é¢æ°ããã¹ãããïŒ
const add = (a, b) => a + b;
test("add", () => {
expect(add(1, 2)).toBe(3);
expect(add(-1, -2)).toBe(-3);
});
2. APIã³ãŒã«ãè¡ã颿°ããã¹ãããïŒ
const fetchData = async () => {
const response = await axios.get("https://example.com/data");
return response.data;
};
test("fetchData", async () => {
const data = await fetchData();
expect(data).toBeDefined();
expect(data.length).toBeGreaterThan(0);
});
3. ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ãã颿°ããã¹ãããïŒ
const getUser = async (id) => {
const client = new pg.Client();
await client.connect();
const result = await client.query("SELECT * FROM users WHERE id = $1", [id]);
await client.end();
return result.rows[0];
};
test("getUser", async () => {
const user = await getUser(1);
expect(user).toBeDefined();
expect(user.name).toBe("John Doe");
});
4. ZIPãã¡ã€ã«ãåŠçãã颿°ããã¹ãããïŒ
const processZip = async (file) => {
const zip = new AdmZip(file);
const zipEntries = zip.getEntries();
const data = [];
zipEntries.forEach((zipEntry) => {
if (!zipEntry.isDirectory) {
data.push(zip.readAsText(zipEntry));
}
});
return data;
};
test("processZip", async () => {
const file = fs.readFileSync("example.zip");
const data = await processZip(file);
expect(data).toBeDefined();
expect(data.length).toBeGreaterThan(0);
expect(data[0]).toEqual("Example Data");
});
5. ããŒã¿ãPostgresDBã«åŠçããããŒã¿ãæ£ããã¢ããããŒããããŠãããã確èªãã颿°ããã¹ãããïŒ
const processData = async (data) => {
const client = new pg.Client();
await client.connect();
await client.query("INSERT INTO mytable (data) VALUES ($1)", [data]);
const result = await client.query("SELECT * FROM mytable WHERE data = $1", [data]);
await client.end();
return result.rows;
};
test("processData", async () => {
const data = "Example Data";
const result = await processData(data);
expect(result).toBeDefined();
expect(result.length).toEqual(1);
expect(result[0].data).toEqual(data);
});
ãŸãšã
ãŠããããã¹ãã¯éçºããã»ã¹ã®äžå¯æ¬ ãªéšåã§ããããã°ãæ©æã«æ€åºããããšã§å€ãã®æéãšåŽåãç¯çŽã§ããŸããJavaScriptã䜿çšãããšããŠããããã¹ããéå§ããã®ã¯æ¯èŒçç°¡åã§ãJestãMochaãChaiãªã©ã®ããŸããŸãªãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªæ©èœããã¹ãããããšãã§ããŸããNode.js ExpressãJavaScriptã䜿çšããŠããŸãã
æåŸ
ãã€ããäžè©±ã«ãªã£ãŠããŸãããã®èšäºã楜ããã§ãæ°ããããšãåŠã¹ããå¬ããã§ãã
次ã®èšäºã§ãäŒãããŸãããïŒãã®èšäºãæ°ã«å ¥ã£ãããç§ãå¿æŽããããã«ããããïŒããæŒããŠç»é²ããŠãã ãããããããšãããããŸããã
ãã®èšäºã®äž»ãªç®çã¯ãæ¥æ¬èªã¬ãã«ãäžããã®ãæäŒãããšã§ãããœãããŠã§ã¢éçºã«é¢é£ããæŠå¿µãç¥èãªãšã玹ä»ããããã«ç°¡åãªæ¥æ¬èªã䜿ããŸããITã®ç¥èã«é¢ããŠã¯ãã€ã³ã¿ãŒãããäžã§ãã£ãšãã説æãããŠãããããããŸãããããã®èšäºã®äž»ãªç®æšã¯ãŸã æ¥æ¬èªãåŠã¶ããšã§ãã
Ref
All Rights Reserved