質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

0回答

2445閲覧

SequelizeでCRUD処理を実行したいが、/model/index.jsをrequireできない

sukesa

総合スコア2

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2019/08/16 08:42

前提・実現したいこと

SequelizeでCRUD処理を実行したい

現在、Nodejs + Express + Sequelize 環境でCRUD処理を行う簡易的なアプリを作成中なのですが、
Sequelizeで作成したmodelをrequireできずに困っています。
DBは、PostgreSQLを使用しています。

発生している問題・エラーメッセージ

url.js:152 throw new ERR_INVALID_ARG_TYPE('url', 'string', url); ^ TypeError [ERR_INVALID_ARG_TYPE]: The "url" argument must be of type string. Received type undefined at Url.parse (url.js:152:11) at Object.urlParse [as parse] (url.js:146:13)...

該当のソースコード

appjs

1var createError = require('http-errors'); 2var express = require('express'); 3var path = require('path'); 4var cookieParser = require('cookie-parser'); 5var logger = require('morgan'); 6var { Client } = require('pg'); 7const Sequelize = require('sequelize'); 8const sequelize = new Sequelize('mydb', 'postgres', 'password', { 9 host: 'localhost', 10 dialect: 'postgres' 11}); 12 13var indexRouter = require('./routes/index'); 14var usersRouter = require('./routes/users'); 15 16var app = express(); 17 18// view engine setup 19app.set('views', path.join(__dirname, 'views')); 20app.set('view engine', 'ejs'); 21 22app.use(logger('dev')); 23app.use(express.json()); 24app.use(express.urlencoded({ extended: false })); 25app.use(cookieParser()); 26app.use(express.static(path.join(__dirname, 'public'))); 27 28app.use('/', indexRouter); 29app.use('/users', usersRouter); 30 31// catch 404 and forward to error handler 32app.use(function(req, res, next) { 33 next(createError(404)); 34}); 35 36// データベース接続チェック 37sequelize 38 .authenticate() 39 .then(() => { 40 console.log('Connection has been established successfully.'); 41 }) 42 .catch(err => { 43 console.error('Unable to connect to the database:', err); 44 }); 45 46// error handler 47app.use(function(err, req, res, next) { 48 // set locals, only providing error in development 49 res.locals.message = err.message; 50 res.locals.error = req.app.get('env') === 'development' ? err : {}; 51 52 // render the error page 53 res.status(err.status || 500); 54 res.render('error'); 55}); 56 57module.exports = sequelize; 58module.exports = app; 59

userjs

1var express = require('express'); 2var router = express.Router(); 3const db = require('../models/index'); //この行を追加すると上記エラーが発生します。 4 5/* GET users listing. */ 6router.get('/', function(req, res, next) { 7 res.send('respond with a resource'); 8}); 9 10// GET /users/sign_up 11router.get('/sign_up', (req, res, next) => { 12 res.render('sign_up'); 13} ) 14 15 16// GET /users/sign_in 17router.get('/sign_in', (req, res, next) => { 18 res.render('sign_in'); 19} ) 20 21// GET /users/create 22router.post('/create', (req, res, next) => { 23 db.user.create({ 24 name: req.body.name, 25 email: req.body.email 26 }) 27 .then((createUser) => { 28 console.log(createUser); 29 }); 30 31 res.render('sign_up'); 32} ) 33 34module.exports = router; 35 36

試したこと

modelをrequireする箇所を、
const user = require('../models/user');
としてみたのですが、
user.createを実行しようとすると、
user.create is not a function
とエラーがでてダメでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問